This patch fixes a race condition between
tegra_dce_unregister_ipc_client and dce_client_ipc_wakeup.
If dce_client_ipc_wakeup is called just after unregistering
it'll result in accessing already freed data structures and
kernel crash. This patch adds a check to validate if the client_ipc
struct is valid before accessing its members.
Bug 4913921
Change-Id: Ie7f25379d7254d1f1ad4fb17baafee353f6d9eca
Signed-off-by: Mahesh Kumar <mahkumar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3239873
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Vinod Gopalakrishnakurup <vinodg@nvidia.com>
- Initialize lock per device node and take lock at the
start of processing of each ioctl command. This is needed
because there is only one set of IOVA buffers allocated
during init per device node. Without lock it leads to
race conditions when more than one app uses the same
device node.
- Release tfm after each API call for both sha and hmac-sha
- Validate rng buffer size provided by user
- Support buf size up to HW supported limit for GCM-Dec req
if tag verify is supported by HW.
Jira ESSS-1517
Bug 4881474
Change-Id: I338558656ac00b91750e74990bb47c5a35f31e08
Signed-off-by: Nagaraj P N <nagarajp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3233377
Reviewed-by: Leo Chiu <lchiu@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
CONFIG_TEGRA_BWMGR is a downstream solution in the kernel before
K5.15, and the implementation now is completed moved to BPMP side.
Since it is not supported anymore, remove the legacy code for
maintainability.
Bug 4955427
Change-Id: I688c44288bfb8522ddfebd8abe294b0410ca8dc1
Signed-off-by: Johnny Liu <johnliu@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3248363
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
- Compile axi-nvdla.ko alongside nvhost-nvdla.ko driver.
- Fix the sequence of register programming that is unique
to DLA3.
- Introduce a debugfs node for bitbang loading the IMEM/DMEM
contents.
- Raised Bug 4942853 to track the syncpoint features.
- Address review comments from the previous patchsets in
regard to the DLA3 updates.
Bug 4916080
Change-Id: I6859868e6cdd3e11f90e76a8bcf79a9676cd5a52
Signed-off-by: Arvind M <am@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3205466
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Mitch Harwell <mharwell@nvidia.com>
Reviewed-by: Ken Adams <kadams@nvidia.com>
Reviewed-by: Amit Sharma (SW-TEGRA) <amisharma@nvidia.com>
Reviewed-by: Vishal Thoke <vthoke@nvidia.com>
issue: PHY ID allocation is failing during the
stress test of insmod and rmmod of nvethernet
module, since PHYIDs were exhausing during the
module insertion.
fix: deregister fixed link in remove for
freeing up the PHYIDs which were allocated during
probe.
Bug 4754744
Signed-off-by: Narayan Reddy <narayanr@nvidia.com>
Change-Id: I6e71c684d4fcc5bb99a971c7d4d41726998cd8ec
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3245742
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Mohan Thadikamalla <mohant@nvidia.com>
Upstream has removed iommu_present function from k6.13, hence remove
call to this function from nvmap, as IOMMU will be always present in
any latest SOC. We will rely on dont-convert-iovmm-to-carveout property
from DT to avoid converting the entire IOVMM to carveout.
Bug 4923950
Change-Id: Ia7e374e81ab8c78f3d17187aebd2fcf0170fabdc
Signed-off-by: Ketan Patil <ketanp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3243903
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Pritesh Raithatha <praithatha@nvidia.com>
Transmit: Add test_tx_bandwidth_dump_enable support to
transmit packets from the driver which helps measure
line rate for 25G and 10G.
pkt1500, pkt8192, pkt64 packet sizes can be configured.
Receive- Drop Packets at the driver level.
Bug 4742868
Change-Id: I52fe1b73b169dfedc06afea5fb62d7bc21fd9ba1
Signed-off-by: Nagaraj Annaiah <nannaiah@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3197198
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
After removing nvmap_priv.h, nvmap no longer builds for Linux v6.10+
kernels and error such as the following are observed ...
drivers/video/tegra/nvmap/nvmap_alloc.c:41:24: error: implicit
declaration of function 'vzalloc'; did you mean 'kzalloc'?
[-Werror=implicit-function-declaration]
41 | return vzalloc(len);
| ^~~~~~~
| kzalloc
drivers/video/tegra/nvmap/nvmap_alloc.c:52:17:
error: implicit declaration of function 'vfree'; did you mean
'kvfree'? [-Werror=implicit-function-declaration]
52 | vfree(ptr);
| ^~~~~
| kvfree
Fix this by including vmalloc.h in the necessary files.
JIRA TMM-5751
Change-Id: I49fae7ea5a78f0029706c2bd12b5553e5903f31b
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3243752
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Ketan Patil <ketanp@nvidia.com>
Building the rtl8852ce driver with various different Linux v6.x kernels
fail for various reasons.
For Linux v6.6 the build fails with errors such as ...
drivers/net/wireless/realtek/rtl8852ce/phl/phl_sta.c: In function
'phl_cmd_set_seciv_hdl':
drivers/net/wireless/realtek/rtl8852ce/phl/phl_sta.c:4907:16: error:
implicit conversion from 'enum rtw_hal_status' to
'enum rtw_phl_status' [-Werror=enum-conversion]
4907 | return rtw_hal_set_dctrl_tbl_seciv((void*)phl_info->hal,
| sta, sta->sec_iv);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For Linux v6.8 the build fails with the above and the following ...
drivers/net/wireless/realtek/rtl8852ce/phl/phl_sta.c:301:5: error:
no previous declaration for '_phl_get_macid'
[-Werror=missing-declarations]
301 | u16 _phl_get_macid(struct phl_info_t *phl_info,
| ^~~~~~~~~~~~~~
For Linux v6.10 the build fails with the above and the following ...
drivers/net/wireless/realtek/rtl8852ce/core/rtw_ap.c:6265:9: error:
suggest braces around empty body in an 'else' statement
[-Werror=empty-body]
6265 | ;
| ^
drivers/net/wireless/realtek/rtl8852ce/core/rtw_sta_mgt.c:742:1: error:
'static' is not at beginning of declaration
[-Werror=old-style-declaration]
742 | u32 static _rtw_free_core_stainfo(_adapter *padapter , struct
| sta_info *psta, u8 aid,
| const u8 *hwaddr)
| ^~~
For Linux v6.12, the driver build is completely broken because of the
following build error ...
drivers/net/wireless/realtek/rtl8852ce/os_dep/linux/wifi_regd.c:1007:17:
error: too few arguments to function 'cfg80211_cac_event'
1007 | cfg80211_cac_event(evt->netdev, &evt->chandef,
| evt->event, GFP_KERNEL);
| ^~~~~~~~~~~~~~~~~~
For Linux v6.6+ mark the driver as broken and do not build this for
Linux v6.6+ kernels until these issues are addressed.
Bug 4667769
Change-Id: Id6b060f6b39ba4ef64d6388e06ef1e038c19206f
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3226276
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3242573
Reviewed-by: svcacv <svcacv@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Shobek Attupurath <sattupurath@nvidia.com>
pci_client abstraction supports notification to application.
Each endpoint has to register with pci_client for notification which
return link_event_id after registration.
link_event_id is index in lookup table with total size as MAX_ENDPOINT.
This link_event_id is allocated sequential and does not match with ep_id
which is endpoint index with max as MAX_ENDPOINT.
stream-extension is not aware about link_event_id and uses ep_id for
notification which leads to mismatch in look up table finally dropping
notification.
Registering for link event in sequential manner does not help much as
registration against ep_id will make lookup table and endpoint database
one-to-one mapping.
Update endpoint registration for link event based on ep_id and use ep_id
in lookup table for notification purpose.
Bug 4913236
Change-Id: I75bfdbf0e8e5b7b11b0cca7dc266f01f492362f6
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3233789
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Tested-by: Janardhan Reddy AnnapuReddy <jreddya@nvidia.com>
Not all kernel define the enum UFSHCD_QUIRK_BROKEN_PWR_SEQUENCE
Add conftest to find out whether kernel has define the enum
UFSHCD_QUIRK_BROKEN_PWR_SEQUENCE or not and then check for macro
before using it.
Bug 4911768
Change-Id: I4eba6f02ab79c1d4a5bdefb3ec831cc4ae34d527
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
GO bit will be cleared after driver
writing it to 1. Need to check the
clear status. Added check for the same.
Bug 4782274
Signed-off-by: Mallikarjun Kasoju <mkasoju@nvidia.com>
Change-Id: I71f035a27fb95de3e37d515a34c48c493f827a44