Commit Graph

354 Commits

Author SHA1 Message Date
Revanth Kumar Uppala
306f33d38e nvethernet: Read instance_id irrespective of macsec.
Issue:
MGBE0 ASID is getting programmed for all the MAC instances
which inturn causing the data transfer failures.Macsec is not enable
and hence instance_id is not getting updated to the corresponding mac
instance number and hence all mac instance_id's are initialized with 0.
Since ASID programming is based on mac instance_id, all MACs are
programmed with MGBE0 MAC instance id.

Fix:
Moved reading of instance_id from DT out of macsec_probe and hence the
instance_id gets updated irrespective of MAC sec enable/disable.

Bug 4124937

Change-Id: I500ed8d3db402995488260af99ad190217ff6dd2
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2925252
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-06-27 09:23:14 -07:00
Jon Hunter
c2c17e16c9 net: nvethernet: Fix nvethernet for Linux v6.3
Commit db1a63aed89c ("net: phy: Remove fallback to old C45 method")
removes a fallback C45 method in the MDIO bus driver. This breaks
nvethernet support for Linux v6.3 and the following errors are observed.

 failed to register MDIO bus (nvethernet_mdio_bus)
 net eth0: failed to register MDIO bus

Fix this by adding the necessary read/write_c45 callbacks in the
nvethernet driver. Note these callbacks are only supported for Linux
v6.3+ kernels.

Bug 4014315

Change-Id: Ia6ab753941db0515799657da8522f32996d0852a
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2924619
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
2023-06-24 07:28:08 -07:00
Ankita Garg
7c81eb1b54 nvethernet: Fix build error when !OSI_STRIPPED_LIB
ioctl_data and osi_core are defined only when !OSI_STRIPPED_LIB. Fix
error in the code that accesses these variables outside the #ifndef

Bug 3974840

Change-Id: Ib0219dd0f7d9517bee2bec00ee7c546fd6e210e5
Signed-off-by: Ankita Garg <ankitag@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2917512
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-06-14 22:56:06 -07:00
Ankita Garg
42aca030bf nvethernet: Fix build error with clang
When building module with clang, -mno-outline-atomics compiler option
is not recognized

Signed-off-by: Ankita Garg <ankitag@nvidia.com>
Change-Id: Ia46702ec3be8552f830c91f53da63a99bd749af2
(cherry picked from commit 43e30d3a3d80d1455a9020490f5e164f3bd77a2b)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2891855
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Jian-Min Liu <jianminl@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Tested-by: Jian-Min Liu <jianminl@nvidia.com>
2023-06-13 00:18:02 -07:00
Jon Hunter
6475ddcf3d net: nvethernet: Allow driver to be built without NVPPS
The nvethernet driver has a dependency on the NVPPS driver which in
turn has a dependency on the GTE driver. The GTE driver is being
transitioned to the new upstream HTE driver and while this transition is
on-going, allow the nvethernet driver to be distributed and built
without NVPPS and GTE.

Note that by default the dependency on the NVPPS driver is enabled by
setting CONFIG_TEGRA_NVPPS to 'y'. Only if the user sets
CONFIG_TEGRA_NVPPS to 'n' will it be disabled.

Bug 3918941
Bug 3961133

Change-Id: I019e5ebfddfcb158b0a684d2eacc404231577166
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2913273
Reviewed-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-06-07 22:06:16 -07:00
Jon Hunter
de1bf0e728 net: nvethernet: Remove ivc_ext.h
The ivc_ext.h is not needed by the nvethernet driver and so remove this
header so that we do not need to distribute this header for building
nvethernet.

Bug 3918941

Change-Id: Ic95d6cdc8afebaa3f8e2bdf85ca63e636c05d86c
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2913272
Reviewed-by: Revanth Kumar Uppala <ruppala@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-06-07 22:06:11 -07:00
Revanth Kumar Uppala
0a8365166e nvethernet:Fix compilation errors in Linux safety
Issue:
Observed below compilation issues
on the nvethernet driver for DRIVE Linux safety
builds as some macros/functions are defined with
"OSI_STRIPPED_LIB" protection but they are used
directly without any protection.

1./automotive-dev-main-20230516T005516255/out/embedded-linux-generic-release-safety/nvidia/kernel-rt_patches-nvidia-oot/nvidia-oot/drivers/net/ethernet/nvidia/nvethernet/sysfs.c:2641:33: error: ‘OSI_INSTANCE_ID_EQOS’ undeclared (first use in this function)
 2641 |    if (osi_core->instance_id == OSI_INSTANCE_ID_EQOS)
      |                                 ^~~~~~~~~~~~~~~~~~~~

2./automotive-dev-main-20230516T005516255/out/embedded-linux-generic-release-safety/nvidia/kernel-rt_patches-nvidia-oot/nvidia-oot/drivers/net/ethernet/nvidia/nvethernet/sysfs.c:2733:3: error: ‘dev_attr_hsi_enable’ undeclared here (not in a function)
 2733 |  &dev_attr_hsi_enable.attr,
      |   ^~~~~~~~~~~~~~~~~~~

Fix:
Add OSI_STRIPPED_LIB macro protection
for required functions.

Bug 3959085

Change-Id: Ifef1c72b5ddedc4d550280eace305bbade290bbf
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2905357
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-05-18 23:46:40 -07:00
Revanth Kumar Uppala
98b2b3ff4f nvethernet: Skip the device resume via mdio bus
Enable "phydev->mac_managed_pm" so that device
won't be resumed for second time via mdio bus

Bug 4071996

Change-Id: Ib35bc1459bd882a2b940d4f28bd9d2c76719bfc7
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2901540
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-05-18 23:41:10 -07:00
Revanth Kumar Uppala
b23abb0c87 nvethernet: Resolve compilation warnings on kernels 5.17+
dev_addr present in struct net_device is made const
from K5.17. So, typecasting it to "nveu8_t * const" while
passing it to the osi_macsec_init().

Bug 4076818

Change-Id: I4b2ac2b1a033bc41af5174da29ff9867fe4df89f
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2900162
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Sanath Kumar Gampa <sgampa@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-05-10 13:53:44 -07:00
Revanth Kumar Uppala
8229868ec8 nvethernet: Address dev_addr warnings in K5.17
dev_addr present in struct net_device is made const
from K5.17.So, modifying the local pointer also
to const.

Bug 4076818

Change-Id: I7f2f0a5fab033a13145a0d5a60f2847d239cedb4
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2898041
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-05-04 11:49:49 -07:00
Revanth Kumar Uppala
2c2e1dfb9e nvethernet: Correct the if-else condition to copy mac address
Address setting helpers are used to copy mac address from K5.17
as netdev->dev_addr is constant from K5.17.Adding an else condition
now so that memcpy will be used for Kernel versions below K5.17

Bug 4076818

Change-Id: I1542a82710aa2bdf12bfc93fdaedf31d34df91b2
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2897883
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-05-04 11:49:06 -07:00
Narayan Reddy
d1f735fe0d nvethernet: remove explicit addition of vlan prio
Issue: skb_vlan_tag_get gives only the VLAN_ID for
the earlier kernel versions (K4.9) and hence added
a logic to take care of adding the VLAN priority
explicitly and hence the VLAN priority getting
modified in a newer kernel version where VLAN PRIO is
already included

Fix: remove the logic of explicit adding of VLAN
priority.

Bug 3788862
Bug 4088361

Change-Id: I0ac9ebfe21d3e696ac1b0f6ba540c010928f775f
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2806468
(cherry picked from commit 799b17fc35f3bc3ec75ea93452c03bd52ed28527)
Signed-off-by: Narayan Reddy <narayanr@nvidia.com>
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2895043
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-05-04 11:36:02 -07:00
Om Prakash Singh
4d63a3e291 nvethernet: avoid enabling HSI from sysfs
avoid enabling HSI from sysfs when virtualization is enabled.
HSI feature is enabled from ethernet-server.

Bug 3590939
Bug 4088361

Change-Id: Icd572efb24379fc8d2fc10ab1faaf0a764ee9679
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2784216
(cherry picked from commit e0754b34892b27b2577bc81ec06dd76efe81b378)
Signed-off-by: Om Prakash Singh <omp@nvidia.com>
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2897229
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-05-04 11:35:52 -07:00
Mahesh Patil
448ee57dbc nvethernet: Clean up UPDATED_PAD_CAL macro
Bug 2831220
Bug 3500401
Bug 4088361

Change-Id: I2d805d5f16be91c2d213298fc3a5353f6fde001d
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2847060
(cherry picked from commit b06ce7098a503ac1f0aed586089c9e2c4e0235b8)
Signed-off-by: Mahesh Patil <maheshp@nvidia.com>
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2897235
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-05-04 11:35:47 -07:00
Bibhay Ranjan
11cf87fd65 nvethernet: remove OSI controlled CFLAGS
All the common cflags will be controlled by OSI

Bug 3759976
Bug 4088361

Change-Id: I97945270c034e00f2ca160697824cdedb8402f54
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2808843
(cherry picked from commit dea31bfcefa03ab3989bd2a3b25aee804eab559c)
Signed-off-by: Bibhay Ranjan <bibhayr@nvidia.com>
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2897234
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-05-04 11:35:37 -07:00
Rakesh Goyal
158ea57641 nvethernet: Protect Tx timestamp list
add_skb_node() added to delete the old entries from the list
but this can concurrently create the issue with ether_get_tx_ts()
either from the workqueue or direct call from tx done routine.

Protect the concurrent access of Tx timestamp list from add_skb_node()
and ether_get_tx_ts().

Bug 3927990
Bug 4088361

Change-Id: Ifae84a072d7d16b259178f2a8e79c2065ce837d8
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2842411
(cherry picked from commit 8509d3060cc697cf43c3194521575f859de53e39)
Signed-off-by: Rakesh Goyal <rgoyal@nvidia.com>
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2895045
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-05-04 11:35:32 -07:00
Mohan Thadikamalla
756347cd7f nvethernet: Fix invalid KWT fail on NDAS
Issue:
KWT test is getting failed on
NDAS build due nvethernet
driver warnings.

Fix:
Remove unrelated nvethernet
driver warnings

Bug 3935448
Bug 4088361

Change-Id: Ic76a42b2aab2f95ae8b9f89c7823693d58c37f33
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2854306
(cherry picked from commit bb1910bfd1a5305dee9302b2d8fde081e391c516)
Signed-off-by: Mohan Thadikamalla <mohant@nvidia.com>
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2897233
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-05-04 11:35:22 -07:00
Sushil Singh
a397076302 nvethernet: Add NULL check for phydev in eee init
Issue:
During eth0 down case, the link change gets called twice,
1. due to ndo close
2. due to interrupt generated by phy.
The ether_adjust_link callback also configures the EEE settings
and calls phy_init_eee (a phy framework API) for the same.
Here a race condition occur, when ether_close sets phydev to NULL
before the phy_init_eee gets called (from ether_conf_eee) which tries
to deference the phydev causing kernel panic.

[35779.541305] Call trace:
[35779.544018]  phy_init_eee+0x24/0x290
[35779.547455]  ether_conf_eee+0x110/0x1310 [nvethernet]
[35779.552525]  ether_conf_eee+0x4e0/0x1310 [nvethernet]
[35779.557840]  phy_link_change+0x40/0x90
[35779.561603]  phy_state_machine+0x190/0x240
[35779.565643]  process_one_work+0x1c4/0x4d0
[35779.569396]  worker_thread+0x54/0x430
[35779.573072]  kthread+0x148/0x180
[35779.576586]  ret_from_fork+0x10/0x34
[35779.580069] Code: a90153f3 d5384113 a9025bf5 12001c36 (f941b801)
[35779.586195] ---[ end trace 2ea5b6492f36b0cb ]---
[35779.590737] Kernel panic - not syncing: Oops: Fatal exception

Fix:
Add a NULL check and return -ENODEVICE in EEE configuration

Bug 3877272
Bug 3920560
Bug 3865666
Bug 4088361

Change-Id: I2b26c6eeabb7a109b9d14b3bd2a035f5c3b3c6fa
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2854404
(cherry picked from commit 40606dc247eacf2a8987687777874575d9037058)
Signed-off-by: Sushil Kumar Singh <sushilkumars@nvidia.com>
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2855237
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-05-04 11:35:12 -07:00
Narayan Reddy
90ec9bc532 nvethernet: turnoff carrier in link down
Issue: ethtool status shows link detected as
yes even though the link is down

Fix: turnoff the carrier when link down is received
so that ethtool status shows the current status
of link.

Bug 3806700
Bug 4088361

Change-Id: I9a68867280690c22a7b4daa225059d576ae5bb7b
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2828301
(cherry picked from commit be8d9423b4ed30e75ac9e5cff87add1d492d152e)
Signed-off-by: Narayan Reddy <narayanr@nvidia.com>
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2895044
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-05-04 11:35:02 -07:00
Rakesh Goyal
f9f6447c30 nvethernet: remove EQOS_GET_CONNECTED_SPEED from export ioctl
Remove EQOS_GET_CONNECTED_SPEED	from export IOCTL.
Reference application can use it ethtool for speed

Bug 3812806
Bug 4088361

Change-Id: I56b47eaef9da3adc03ad9269dde26f520419b2b0
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2828652
(cherry picked from commit 4859987708858e1cb048ab4f6c784d2057131511)
Signed-off-by: Rakesh Goyal <rgoyal@nvidia.com>
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2897232
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-05-04 11:34:57 -07:00
Mahesh Patil
44419231b0 nvethernet: eqos pad calibration reg offsets
Make eqos pad calibration reg ETHER_QOS_AUTO_CAL_CONFIG_0 offsets
AUTO_CAL_PD_OFFSET and 	AUTO_CAL_PU_OFFSET configurable as per
customer boards tuning

Bug 3846183
Bug 4088361

Change-Id: I77521f83cac56650c6a6d1a2dd8b8c7cbdc3f3fc
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2806180
(cherry picked from commit 8eea133d313ba3b1b4ced9f58a65ecf870a2b0e6)
Signed-off-by: Mahesh Patil <maheshp@nvidia.com>
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2897231
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-05-04 11:34:52 -07:00
Laxman Dewangan
c69d77a04a nvethernet: Rename srctree.nvidia to srctree.nvidia-oot
Replacing the env variable srctree.nvidia with
srctree.nvidia-oot as everything needed for this
driver is in the nvidia-oot source.

Bug 4087103

Change-Id: Iad960d101a91e74d14f4889f1ec745ff21ff337f
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2894616
Reviewed-by: Revanth Kumar Uppala <ruppala@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-27 08:15:06 -07:00
Mohan Thadikamalla
6129bcc538 nvethernet: Clear VLAN tag stripping
Issue:
Observed VLAN ping failure on Linux safety builds.

Fix:
Clear VLAN tag stripping on nvethernet drivers.

Bug 4081795

Change-Id: I08936e2afa1fe1111570cf0cea6aa0cbe463e157
Signed-off-by: Mohan Thadikamalla <mohant@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2891932
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-27 08:00:55 -07:00
Sanath Kumar Gampa
d07b3d604c nvethernet:MACSEC, add byp lut with VF MAC
Issue: If the supplicant is killed for some reason Data would flow
plain on that interface, this needs to be avoided

Fix: Update bypass LUT such that if the frames from the VF(on which
supplicant is launched) is received on MACSEC either authenticate the
same or drop. Along with this handles below items as well. All the VFs MACIDs
are obtained in OSI to update the bypass LUTs to decide on which VF frames
to be authenticated and which VF frames needs to be bypassed.

1. Remove osi_macsec_en API and have single API to init and deinit
2. Remove explicit command from supplicant to set control port and
set protected frames. Handle the same in osi_macsec_init

Bug 3984665

Change-Id: I8bc8aa95d1e21e99e992b471fb70ed58073163f7
Signed-off-by: Sanath Kumar Gampa <sgampa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2878515
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-21 11:35:13 -07:00
Jon Hunter
11cff41889 net: nvethernet: Fix build for Linux v6.3
Upstream commit 99d5fe9c7f3d ("net: mdio: Remove support for building C45
muxed addresses") removed the definition MII_ADDR_C45 breaking the build
for the nvethernet driver for Linux v6.3. Update the driver to use the
OSI_MII_ADDR_C45 instead.

Bug 4014315
Bug 4075345

Change-Id: I98f8d10ce1a093d458d293b286a4e5a544d48d04
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2889876
Reviewed-by: Rohit Khanna <rokhanna@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-19 10:57:57 -07:00
Laxman Dewangan
846435a74c drivers: Remove Kconfig files
The kconfig files from nvidia-oot will not get
parsed as the drivers in nvidia-oot are out tree and
does not support any config variable.

Bug 4074863

Change-Id: I6825a94c56404a6860dea9f2afd1ca3bc68e10a4
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2889266
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-19 10:54:28 -07:00
Revanth Kumar Uppala
580358e6a2 nvethernet: macsec: Fix crash during suspend
Issue: MACSEC is not enabled in DT for eqos_1 and mgbe2_1
interfaces which makes macsec_pdata pointer to NULL.
During suspend/resume macsec_pdata pointer accessed without
NULL check which resulted in crash.

Fix:
o Add NULL pointer checks for macsec_pdata in suspend and resume.
o Remove unnecessary checks for macsec in suspend and resume.

Bug 4060718

Change-Id: I00e042d979e115c088696a8964496ed0054360e5
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2888289
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-14 23:36:47 -07:00
Sushil Kumar Singh
a986d91aa3 nvethernet: Kernel panic when set jumbo frame
Issue:
Macsec data is NULL for Xavier platforms as no DT macsec
entry is available. This NULL pointer is accessed when
changing MTU, causing kernel panic.

[  110.247070] Unable to handle kernel NULL pointer dereference at virtual address 000000000000015c
[  110.247292] Mem abort info:
[  110.247355]   ESR = 0x96000004
[  110.247423]   EC = 0x25: DABT (current EL), IL = 32 bits
[  110.247534]   SET = 0, FnV = 0
[  110.247616]   EA = 0, S1PTW = 0
[  110.247682] Data abort info:
[  110.247743]   ISV = 0, ISS = 0x00000004
[  110.247823]   CM = 0, WnR = 0
[  110.247889] user pgtable: 4k pages, 48-bit VAs, pgdp=000000010a201000
[  110.248031] [000000000000015c] pgd=0000000000000000, p4d=0000000000000000
[  110.248176] Internal error: Oops: 96000004 [#1] PREEMPT SMP
[  110.248295] Modules linked in:
[  110.248379] CPU: 2 PID: 1423 Comm: ifconfig Not tainted 5.10.120-tegra #11
[  110.248525] Hardware name: Unknown Jetson-AGX/Jetson-AGX, BIOS 0.0-ff9214ce 12/20/2022
[  110.248690] pstate: 60400009 (nZCv daif +PAN -UAO -TCO BTYPE=--)
[  110.249074] pc : ether_change_mtu+0x144/0x220
[  110.249381] lr : ether_change_mtu+0x140/0x220
[  110.250528] sp : ffff800014b1b470
[  110.253853] x29: ffff800014b1b470 x28: ffff0318c9632d00
[  110.259366] x27: ffffb376aafb0978 x26: ffffb376aafb0948
[  110.264636] x25: ffffb376ab3b3aa0 x24: ffffb376abf7edd8
[  110.269870] x23: ffff0318c9632d00 x22: ffffb376abeb97d8
[  110.275569] x21: ffff0318c5dc0940 x20: 0000000000002328
[  110.280806] x19: ffff0318c5dc0000 x18: 0000000000000010
[  110.286401] x17: 0000000000000000 x16: ffffb376aa327910
[  110.291581] x15: ffff0318c9633270 x14: ffffffffffffffff
[  110.297166] x13: ffff800094b1b167 x12: ffff800014b1b16f
[  110.302500] x11: 0000000000000020 x10: ffffb376abbb0aa0
[  110.307770] x9 : ffffb376a9ccba7c x8 : 0000000000000001
[  110.313439] x7 : 0000000000017fe8 x6 : c0000000ffffefff
[  110.318605] x5 : ffff031c3fd60958 x4 : 0000000000000000
[  110.324305] x3 : 0000000000000001 x2 : 0000000000000000
[  110.329369] x1 : 0000000000000000 x0 : 0000000000000000
[  110.334706] Call trace:
[  110.337416]  ether_change_mtu+0x144/0x220
[  110.341187]  dev_set_mtu_ext+0xe8/0x1d0
[  110.345121]  dev_set_mtu+0x44/0xb0
[  110.348616]  dev_ifsioc+0x254/0x4d0
[  110.352115]  dev_ioctl+0x128/0x380
[  110.355270]  sock_do_ioctl+0xd4/0x240
[  110.359027]  sock_ioctl+0x27c/0x510
[  110.362530]  __arm64_sys_ioctl+0xb8/0x100
[  110.366731]  el0_svc_common.constprop.0+0x80/0x1f0
[  110.371540]  do_el0_svc+0x2c/0x90
[  110.374522]  el0_svc+0x20/0x40
[  110.377943]  el0_sync_handler+0xc0/0xd0
[  110.381689]  el0_sync+0x184/0x1c0
[  110.384931] Code: b900e714 5281ef42 941a98a4 f94312a0 (b9415c00)
[  110.390801] ---[ end trace cbec9c44e214f14b ]---
[  110.395602] Kernel panic - not syncing: Oops: Fatal exception
[  110.400962] SMP: stopping secondary CPUs
[  110.404718] Kernel Offset: 0x337699bb0000 from 0xffff800010000000
[  110.410752] PHYS_OFFSET: 0xfffffce840000000
[  110.414945] CPU features: 0x18240002,03802a30
[  110.419490] Memory Limit: none
[  110.422645] ---[ end Kernel panic - not syncing: Oops: Fatal exception ]---

Fix:
Add NULL check for macsec data. Macsec is set to NULL if it is not
supported in DT from macsec probe.

Bug 3952134

Change-Id: I0b292e39f3ec8f8fed0fb3fef5cd9f52f5c0e2a9
Signed-off-by: Sushil Kumar Singh <sushilkumars@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2846676
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2878453
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-05 06:01:49 -07:00
Revanth Kumar Uppala
80336d6c96 nvethernet: Fix compilation warnings
1.There is a switch-case where one case is falling to the
next case. This is creating the compilation warning.
Make this fall through as intentional by adding
compiler attribute as "fallthrough".

2.Remove redefinition of macro MII_ADDR_C45

Bug 4055275

Change-Id: I99193b225e97c414588bb306cb48e472ae079f9f
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2882027
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-04 21:57:46 -07:00
Mohan Thadikamalla
01d8319aae nvethernet: Add Linux safety support
Issue:
Observed compilation issues
on the nvethernet driver
for DRIVE Linux safety builds.

Fix:
Add OSI_STRIPPED_LIB support
on nvethernet driver.

Bug 3939603

Change-Id: Id4213c1cf33dc0e925df3e627072b727ae44fa71
Signed-off-by: Mohan Thadikamalla <mohant@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2842470
(cherry picked from commit ece0eb57a89396ea8bdc412beeaa7dfabbda49b1)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2879701
Tested-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-04 21:49:37 -07:00
Mohan Thadikamalla
8bb99f5a5d nvethernet: Remove hsierrrptinj callback on probe
Don't register hsierrrptinj callbacks
on probe, only register from
sysfs inputs.

Bug 4050215

Change-Id: Ic8f8971552f5e96b8d10aa25603191206d3d317d
Signed-off-by: Mohan Thadikamalla <mohant@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2830534
(cherry picked from commit 1b053c26a00bab026285a8733b3abe1884494489)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2879714
Tested-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-31 10:11:55 -07:00
Revanth Kumar Uppala
6e2e6973cd nvethernet: Avoid using mdiobus_c45_addr().
Avoid using mdiobus_c45_addr() as it is
obsolete from K6.3.
Instead use its definition directly.

Bug 4014315

Change-Id: Ic407f407b03e465eea97bb530e86360ef81eb1e6
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2873724
Tested-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-26 17:35:58 -07:00
Revanth Kumar Uppala
1d36e57bf2 nvethernet: use address setting helpers
Use address setting helpers as netdev->dev_addr
is constant from K5.17

Bug 3978991

Change-Id: I75520ecf695cbf370ef8233d12c250996ebc2abd
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2872952
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-21 02:38:07 -07:00
Rakesh Goyal
dd7632c195 nvethernet: fix syntax error in fpe ioctl
Issue: Due to syntax error, only 1 byte getting
copied from user space to kernel space.

Fix: Fix syntax error. Add error logs

Bug 3991771

Change-Id: Iff96d0f51605fab2954c1c9a423ad9a6781c1e21
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2866442
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-07 22:52:15 -08:00
Revanth Kumar Uppala
024d4d5e6f ptp: Linux v6.2: Add support for adjfine
In Linux v6.2 func pointer adjfreq is replaced
with adjfine. As a part of this, an argument of
the function "s32 ppb" is changed to
"long scaled_ppm".Added kernel version checks
to handle this for Linux v6.2

Bug 3936429

Change-Id: I7a4f0a0e6e17d484c4ffd47e6e9ef78c214253e7
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2862518
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-01 10:24:11 -08:00
Sushil Kumar Singh
5267694f8e nvethernet: Fix coverity defect
Issue:
Unused value in code with below CID's

10166525
10166540

Fix:
Removed unused variable assignment.

Bug 3952896

Change-Id: I8fa305b26470c08d0eec0e83c8fc5e4fe15be49d
Signed-off-by: Sushil Kumar Singh <sushilkumars@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2860934
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-02-22 00:45:49 -08:00
Vince Hsu
c41266d8b0 nvethernet: use -mno-outline-atomics for nvethernet
The -moutline-atomics is enabled by default since GCC 10. Specify
-mno-outline-atomics to avoid the error when building with GCC 11.

MODPOST kernel-nvidia-oot/nvidia-oot/Module.symvers
ERROR: modpost: "__aarch64_cas4_acq_rel" [ kernel-nvidia-oot/nvidia-oot/drivers/net/ethernet/nvidia/nvethernet/nvethernet.ko] undefined!
ERROR: modpost: "__aarch64_ldadd4_acq_rel" [ kernel-nvidia-oot/nvidia-oot/drivers/net/ethernet/nvidia/nvethernet/nvethernet.ko] undefined!

Bug 3975705
Bug 200730650

Change-Id: Ief3188dbad704c08deec34f2d23ccd9625fa0a5a
Signed-off-by: Vince Hsu <vinceh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2855788
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-02-15 15:56:25 -08:00
Sushil Kumar Singh
877d53d041 nvethernet: Error check for mac address DT node
Issue:
Incorrect return value check for of_get_mac_address()
when reading mac address from dt property.

Fix:
1. Modify error check condition based on
of_get_mac_address() return values.
2. Fixes the Coverity defect CID 10166538.

Bug 3952896

Change-Id: I65ddd05538ad3039da2a21a79be8bb7a0ed1f3fc
Signed-off-by: Sushil Kumar Singh <sushilkumars@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2857036
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-02-15 04:32:29 -08:00
Sushil Singh
9b97e33558 nvethernet: Fix cert c issues
Issue:
CERT EXP33-C - Using uninitialized value.

Fix:
Initialize variable before use

Bug 3959323

Change-Id: Ia4dc3f58ef13c76305ce8242d38a1863986af193
Signed-off-by: Sushil Singh <sushilkumars@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2853914
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-02-10 23:44:41 -08:00
Revanth Kumar Uppala
2172c01a6d ethernet: Get VM IRQ config sequence from nvidia,vm-irq-id
Ethernet driver expect the VM IRQ configuration. The VM IRQ
is provided with the property "interrupt" which have multiple
VM irq numbers and their configurations via the vm irq
configuration node which is referred by property
"nvidia,vm-irq-config".

The vm irq configuration node have the configuration of
all VM IRQ and each configuration is separated with the
child node like below.

ethernet@6800000 {
	nvidia,vm-irq-config = <&mgbe_vm_irq_config>;
}

	mgbe_vm_irq_config: mgbe-vm-irq-config {
		nvidia,num-vm-irqs = <5>;
		vm_irq1 {
			nvidia,num-vm-channels = <2>;
			nvidia,vm-channels = <0 1>;
			nvidia,vm-num = <0>;
                        nvidia,vm-irq-id = <0>;

		};
		vm_irq2 {
			nvidia,num-vm-channels = <2>;
			nvidia,vm-channels = <2 3>;
			nvidia,vm-num = <1>;
                        nvidia,vm-irq-id = <1>;
		};
		vm_irq3 {
			nvidia,num-vm-channels = <2>;
			nvidia,vm-channels = <4 5>;
			nvidia,vm-num = <2>;
                        nvidia,vm-irq-id = <2>;
		};
		vm_irq4 {
			nvidia,num-vm-channels = <2>;
			nvidia,vm-channels = <6 7>;
			nvidia,vm-num = <3>;
                        nvidia,vm-irq-id = <3>;
		};
		vm_irq5 {
			nvidia,num-vm-channels = <2>;
			nvidia,vm-channels = <8 9>;
			nvidia,vm-num = <4>;
                        nvidia,vm-irq-id = <4>;
		};
	};
};

The child 1(vm_irq1) is link with the VM IRQ  1 listed in
interrupt property, next child which is vm_irq2 is link
with the 2nd VM irq. So, the order of VM configuration
child must be in same order as VM IRQ provided in the
property interrupt.

If the irq configuration order i..e child order is not
matching with VM irq number then there is interrupt issue.

Now, if the VM IRQ config child nodes are provided in base
DT file in same order then the ethernet works fine.
But when applying via overlay, it does not work.
This is because of overlay technique. The overlay logic is
such that it iterates all child node in overlay and
apply the child as first child of target node.
Hence the child sequence provided in overlay fragment
is applied in reverse order in target node. This causes
the irq configuration order not matching with VM IRQs.

To address the overlay issue, read the sequence of
interrupt in property "interrupt" from the newly added property
"nvidia,vm-irq-id" of each child. This way child node
sequence does not matter, and sequence is identified
by property.

Bug 3956724

Change-Id: I5c08edcd8a7e8d3112618dd23050d8b5c10ddc59
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2855639
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-02-10 06:20:04 -08:00
Bharat Nihalani
354ef0dbe0 drivers: Use runtime debugfs check
When kernel command line debugfs=off is specified instead of
disabling CONFIG_DEBUG_FS in defconfig to disable Debug-FS,
debugfs functions like debugfs_create_dir will fail.

Use function debugfs_initialized() to check if debugfs
functionality is enabled before calling any debugfs functions.

This allows us to by-pass debugfs initialization if debugfs
is not enabled.

Bug 3752450

Change-Id: I17390c2d9928638d940454c2ea1b3abf00ed4264
Signed-off-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2855128
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-02-10 06:17:56 -08:00
Revanth Kumar Uppala
8ca99872cc nvethernet: Resolve "Wframe-larger-than" warning
Removing duplicate structure variables to eliminate
"Wframe-larger-than" warning.

Bug 3793131

Change-Id: I480b11293708fb97e1f86b862e275a62b6a0f854
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2837140
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-01-16 10:14:18 -08:00
Sheetal Tigadoli
c9df39dd07 nvethernet: register ptp MAC with notifier framework
register ptp MAC with notifier framework by default
since CONFIG_TEGRA_PTP_NOTIFIER has been removed and
is corresponding code is enabled as default. 

Bug 3895413
Bug 3930304 

Change-Id: Ib875079504bfcbfcaf286bb606b4fd581fc12754
Signed-off-by: Sheetal Tigadoli <stigadoli@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2837510
Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-01-06 22:36:53 -08:00
Revanth Kumar Uppala
cb04b4d509 nvethernet: Register ioctl callback functions
Add ioctl callback functions compatible with
kernel versions below 5.15

Bug 3895413

Change-Id: I4ab5d0b6137c6dce7749cb003d99603cff8cb201
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2833701
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-01-04 17:56:22 -08:00
Revanth Kumar Uppala
843ab03d91 nvethernet: Register ioctl callback functions
Add ioctl callback functions compatible with
K5.15 and above  versions

Bug 3895413

Change-Id: Id32a4fa4dec62787b7a1a1c57a4d9f1cf60d2542
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2827706
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-12-16 03:34:21 -08:00
Mohan Thadikamalla
2b21d4a86e nvethernet: Remove MAC START ioctl
Issue:
MAC START and STOP IOCTL are deprecated,
so these IOCTL calls has internally
generated failure for Linux OSD.

Fix:
Remove MAC START IOCTL from Linux OSD.

Bug 3889287

Change-Id: I19684936d22dac35df5af2393e163f51118fc8ce
Signed-off-by: Mohan Thadikamalla <mohant@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2824816
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-12-13 06:23:15 -08:00
Jon Hunter
1e04890051 nvethernet: Fix build for Linux v5.14 and v5.17+
The nvethernet driver fails to build for Linux v5.14 and Linux v5.17+
kernels. In Linux v5.15 the return type of the get/set_coalesce
callbacks were updated. In Linux v5.17 the parameters for the
get/set_ringparam callbacks were updated. In Linux v6.1 the
weight parameter for the netif_napi_add() function was removed and the
function netif_napi_add_weight() was added for passing the weight
parameter. Add the necessary kernel version checks to ensure that the
drivers build with the different versions of the Linux kernel.

Bug 3793131

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Change-Id: I56738eddd27eb4ebf7db5a2d0d031a64379482e8
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2820712
Reviewed-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-12-05 20:45:48 -08:00
Hareesh Kesireddy
32b805cab1 nvethernet: remove unnecessary ioctls
- Removed IPV4/IPV6/TCP/UDP ioctls.
- Added support for single L3L4 ioctl which supports all of the above.

Bug 3825731

Change-Id: Iae3cee595258abf8c908dae5a214d9da9bc8ae80
Signed-off-by: Hareesh Kesireddy <hkesireddy@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2819351
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-12-05 20:41:29 -08:00
Prasun Kumar
46bc09119b nvethernet: Fix HSI Err Rpt Inj
Update nvethernet for HSI Err Rpt Inj

Bug 3877863

Signed-off-by: Prasun Kumar <prasunk@nvidia.com>
Change-Id: I6171742d2ba1c55be971069643ead713e7f5c439
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2819005
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-12-05 20:36:52 -08:00
Hareesh Kesireddy
db62bc86bb nvethernet: update l3l4 filter handling
Modified l3l4 filter ioctls based on corresponding osi changes.

Bug 3576506
Bug 3825731

Change-Id: Id9a4ce263f3526e4c5a357d74f9d55ebb59fef29
Signed-off-by: Hareesh Kesireddy <hkesireddy@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2803367
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-30 06:17:02 -08:00