Commit Graph

48 Commits

Author SHA1 Message Date
Akhil R
7cf41996cb crypto: tegra: Free CMAC fallback tfm during exit
Free the CMAC fallback tfm to fix the memory leak during CMAC operation.
The fallback tfm is setup during init but never freed.

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: Icb9ccf330f94e93459c241ed7105a221832c0514
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2998701
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-10-22 03:23:04 -07:00
Akhil R
3926014666 crypto: tegra: Fix coverity and CERT C defects
Fix the following coverity defects.

ID 10181328, CID 687742 - Uninitialized variable
ID 10181331 - Dead code
ID 10181330, CID 687711 - Uninitialize variable
ID 10181332 - Potential overflow
ID 10181329 - Wrong data type

Bug 3952896
Bug 3959323

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: I62064ee9b0cef4ad78a1aa4980637fcd3df682d6
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2995805
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-10-12 20:38:15 -07:00
Manish Bhardwaj
25bd4163f9 crypto: increase buffer support for SHA operation
Using this patches we are making below changes:-
1. increase buffer support for SHA operation from 1MB to 2MB
2. get the IVC DB during init call.

Bug 4141706

Change-Id: I8101430117569049f3420db58ed06e0158cc2dcc
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2984637
Reviewed-by: Advaya Andhare <aandhare@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-10-03 19:01:22 -07:00
Akhil R
e7f2897cee crypto: tegra: Deprecate Tegra Nvhost driver for k5.15
Remove Tegra SE Nvhost driver to deprecate the support for T186
and T194 Security Engines in kernel-5.15.

Bug 4221414
Bug 3579794

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: I425bc7068f2139e73dd14f0187d10ea856260cac
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2984417
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-10-03 18:59:34 -07:00
Akhil R
2659fcd46a crypto: tegra: Add updated Tegra SE driver
Add the updated Tegra SE driver with the below improvements.
- Remove dependency with nvhost apis and use upstream Host1x APIs.
- Implement software fallbacks for keys/plaintexts unsupported by
hardware.
- Support only T234 and later. Prior chips will use tegra-se-nvhost
driver.

Bug 4221414
Bug 3579794

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: I398a5b7cc3f752b44d01d6d1c81f813f862e4cd9
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2977810
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-10-03 18:59:24 -07:00
Manish Bhardwaj
f6227e9c57 crypto: check buffer size before allocing DMA memory
Passing zero size to dma_alloc API is causing below crash.
Added check on requested size before sending request to
dma layer.
[ 4178.581558]  sg_alloc_append_table_from_pages+0x28c/0x480
[ 4178.581790]  sg_alloc_table_from_pages_segment+0x40/0xb0
[ 4178.582009]  __iommu_dma_alloc_noncontiguous.isra.0+0x244/0x3a0
[ 4178.582258]  iommu_dma_alloc+0x280/0x3b0
[ 4178.582424]  dma_alloc_attrs+0xf8/0x110
[ 4178.582588]  tegra_hv_vse_get_db+0x76c/0x70e0 [tegra_hv_vse_safety]
[ 4178.582850]  hash_sendmsg+0xa8/0x290
[ 4178.583001]  sock_sendmsg+0x68/0x90
[ 4178.583146]  __sys_sendto+0xf0/0x170
[ 4178.583298]  __arm64_sys_sendto+0x38/0x60
[ 4178.583466]  invoke_syscall+0x5c/0x150
[ 4178.583628]  el0_svc_common.constprop.0+0x100/0x120
[ 4178.583829]  do_el0_svc+0x3c/0xb0
[ 4178.583966]  el0_svc+0x20/0x70
[ 4178.584098]  el0t_64_sync_handler+0xc0/0xd0
[ 4178.584270]  el0t_64_sync+0x1a4/0x1a8

Bug 4259208

Change-Id: I134bc84e7b5cbda7db4ed7dbcad4e1c6955429d8
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2983402
Reviewed-by: Ashutosh Patel <ashutoshp@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-09-22 20:08:52 -07:00
Manish Bhardwaj
1b6b4f8746 crypto: Fix compilation warning
Bug 4213877

Change-Id: Ic7fd0496473c5e3225e6235a18176faa8fe3e1be
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2982158
Reviewed-by: Ashutosh Patel <ashutoshp@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-09-21 21:32:13 -07:00
Manish Bhardwaj
90953fc012 Revert "crypto: nvvse: Fix compilation warning"
Bug 4213877

This reverts commit 88af3f4d9f.
Reason for revert: <Proper fix is being merged>

Change-Id: I3442f9a06cd752a5bc9f9c328a8d311a195f1574
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2982104
Reviewed-by: Ashutosh Patel <ashutoshp@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-09-21 21:32:08 -07:00
Advaya Andhare
7d1a687636 nvvse: Allowing multiple access to dev node
- This CL partially reverts the changes done in CL - 2891721
- Current implementation checks if multiple process/threads/apps
  try to access same dev node when it is already open by another
  process/thread/app, and throws an error if condition is true causing
  new process/threads/apps to fail as in bug mentioned below
- This change allows multiple process/threads/apps to access the same
  dev node.

bug 4126726
jira ESSS-759

Change-Id: Ibe18449014e69148ae2feebd854b6c5d278f5bc4
Signed-off-by: Advaya Andhare <aandhare@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2946094
(cherry picked from commit 615a1aba49e2662d767a23e47fed329627f6f91e)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2956815
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Nagaraj P N <nagarajp@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-08-17 20:29:44 -07:00
Jian-Min Liu
1df2ef7d23 nvidia-oot: Fix compilation warning for ack build
Refine the compiler flags for ACK make command and fix compilation
warnings from the new command.

Bug 4187941
Bug 4223187

Signed-off-by: Jian-Min Liu <jianminl@nvidia.com>
Change-Id: Iff7bf5839c585a6c3d3ef6daefb64eb113c739e2
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2954087
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-08-14 01:54:51 -07:00
Akhil R
37cf697fb1 crypto: tegra: Init keyslot for SHA as well
Inititalize keyslot for SHA algorithms as well since SHA-HMAC
uses the same keyslots.
Also reduce the log level of some prints. The scenario does not
have any functional impact that the user need to be notified.

Bug 4221414

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: I73449144ce56aaf35fae52aa1c4c5b0bb8c01d9c
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2952640
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-08-13 00:37:29 -07:00
Jian-Min Liu
fc93f2390c Separate -Werror=frame-larger-than as clang can't recognize
Use '-Werror' and '-Wframe-larger-than' to replace
'-Werror=frame-larger-than' since clang compiler can't
ecognize the combination.

Build failure:

error: unknown warning option '-Werror=frame-larger-than=2560'; did you
mean '-Werror=frame-larger-than='? [-Werror,-Wunknown-warning-option]

Bug 4187941

Change-Id: I4d05a8dc96820517e1047b982a24ed97bb21327f
Signed-off-by: Jian-Min Liu <jianminl@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2938229
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-07-20 01:19:53 -07:00
Jon Hunter
06f4bc788a crypto: Remove -Wno-implicit-fallthrough flag
The crypto drivers compile fine without the ccflag
-Wno-implicit-fallthrough so remove this flag to catch any new warnings
that might be introduced.

Bug 4190030

Change-Id: Ibddbd9d76ea1faa4fa4d5b3a1ed12e1eaf36b40d
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2936714
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-07-19 08:46:53 -07:00
Jon Hunter
88af3f4d9f crypto: nvvse: Fix compilation warning
Building the nvvse-cryptodev driver generates the following warning ...

 drivers/crypto/tegra-nvvse-cryptodev.c:2118:1: error: the frame size of
  2224 bytes is larger than 2048 bytes [-Werror=fra
me-larger-than=]
 2118 | }
      | ^

For now allow the frame size to be 2560 bytes to resolve the warning
while a proper fix is implemented.

Bug 4190030

Change-Id: Id361aebc9f3d83181afc820d8d9cf2ef90e33d55
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2934696
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-07-17 14:37:49 -07:00
Advaya Andhare
883ddf60ca NVVSE: protect shared resources through mutex
Concurrent access of shared variable causing the issue intermittently.
Conditions to wait/handle shared variable updated.
Added mutex locks to protect shared resources.

bug 4155882
Bug 4159212
jira ESSS-707

Change-Id: I3b50e39abf2dfec2ef33b813c7227fcd0634222a
Signed-off-by: Advaya Andhare <aandhare@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2928908
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Leo Chiu <lchiu@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-07-12 04:42:12 -07:00
Advaya Andhare
967fa5d4b4 NVVSE: Implement dummy-message functionality
- Introduced interrupt state for dummy message functionality
- Added functionality for dummy-message

Change-Id: I3bac031159ea9398b4515ca354fdbc2c7d4274c6
Signed-off-by: Advaya Andhare <aandhare@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2913263
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Leo Chiu <lchiu@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2913361
2023-07-12 04:42:06 -07:00
Neelansh Mittal
34288b623d crypto: Single shot processing of input buffers
Support single shot processing for AES GMAC/CMAC/ENC/DEC
and SHA operations.

Bug 4155882
Bug 4086302

Change-Id: Ib2ef39b2fbb7493285947b118b9d1fcdeaefe5b6
Signed-off-by: Neelansh Mittal <neelanshm@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2931625
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-07-07 06:59:25 -07:00
Akhil R
02c4ecb369 crypto: tegra-se-nvhost: Use GFP_ATOMIC if in atomic context
Check if the request may sleep and adjust the GFP flag. This fixes
the issue of sleep during atomic context in tegra-se driver.

Bug 4146804

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: I40006fd0898a85ced75f49565106a9b47ed0dfd0
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2931331
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-07-07 06:58:01 -07:00
Manish Bhardwaj
5e3551960b crypto: fix cert error
Using this patch we are fixing below cert error:-
1. cert_mem30_c_violation: Dereferencing freed pointer ctx.

CID 660103

Bug 3512545

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I4a37aa7743d07669805254ec2fc088a3835f5f3e
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2898370
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-05-04 11:50:45 -07:00
Laxman Dewangan
e27ba12d27 crypto: Get rid of explicit header inclusion
The required headers for crypto driver are already
included in the master makefile. Hence, it is not
required to add include path explicitly.

Bug 4087103

Change-Id: I54ca12ab6de8de802ab75473419be3e77cfbad1f
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2894609
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-27 02:55:32 -07:00
Manish Bhardwaj
afd475c259 crypto: perform only single SHA op at one time
perform single SHA operatin at one time. Multiple
SHA operations at single dev node lead to SHA failure
issues.

Bug 4075005

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Ifc610b278e6a74c82813f564c98c0ee16783b69e
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2891724
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Advaya Andhare <aandhare@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-26 09:42:31 -07:00
Manish Bhardwaj
e7075688b1 crypto: open nvvse node only once during operation
open nvvse node only once during vse operation,
if another thread try to open then return error.

Bug 4075005

Change-Id: Iea88799bf761442cecc8e6336e9743e0fe7cd6e2
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2891721
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Advaya Andhare <aandhare@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-26 09:42:26 -07:00
Laxman Dewangan
13556fa7d2 crypto: Use SPDX GPL 2.0 license format
Use SPDX license format for license and copyright
information. Update year also.

Bug 4078035

Change-Id: I8a5b0f60c702b7fb9a30b5b50ca4058165d38cc9
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2890632
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-21 11:40:45 -07:00
Manish Bhardwaj
f9a0264f89 crypto: fix memory leak issue
Using this patch we are fixing memory leak
issue

Bug 4064812

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Ifd2e74e5d1b9b6cbd91a6ec65e45626066c9a1f5
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2888604
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-20 06:47:15 -07:00
Manish Bhardwaj
fe2085dcef crypto: fix compilation warning
local variables size is more then recommended values leading
to compilation warning. So usign this patch we are fixing
below compilation warnigs:-
nvidia-oot/drivers/crypto/tegra-nvvse-cryptodev.c:
In function ‘tnvvse_crypto_dev_ioctl’:
nvidia-oot/drivers/crypto/tegra-nvvse-cryptodev.c:2103:1:
warning: the frame size of 2224 bytes is larger than 2048 bytes
[-Wframe-larger-than=]

Bug 4064812

Change-Id: Ie5f0489c9733451f9a132e146790a18d3dd4d6f9
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2887287
Reviewed-by: Ashutosh Patel <ashutoshp@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-14 08:21:59 -07:00
Rounak Agarwal
f5e605c3da Use new numbers for VSE commands
In the change I527644b9f9b8b8ff7f5d1382e3fee0627b9deeb8, VSE commands
have been renumbered. This commit copies the new numbers to VSE driver.

JIRA ESSS-503

Change-Id: I9d6318ccfef6fc8d3a022dbf36200d1a1bb5ec39
Signed-off-by: Rounak Agarwal <rounaka@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2872675
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-10 20:47:13 -07:00
Manish Bhardwaj
ac315cf5ad nvvse: Enable Multipart/Singlepart UserNonce
crypto: hvvse: UserNonce enable for CBC/CTR

- Using SE server for CBC mode
- Updating counter for CTR mode
- Copying IV to userspace from kernelspace only for non userNonce

Jira ESSS-467

crypto: Support Multipart CBC/CTR

- Updated update_counter function
- Added support for mulitpart CBC/CTR

Jira ESSS-525

Signed-off-by: Advaya Andhare <aandhare@nvidia.com>
Change-Id: I3a85f510d28a6bd26b4b6b5b216c2659ec4052c6
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2874482
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-05 05:59:35 -07:00
Manish Bhardwaj
ba066d3e58 crypto: fix memory leak in crypto driver
when SHA operation gets started using SHA_INIT and
it did not gets finished using SHA_FINAL leads to memory
leak. So Using this patch we are fixing the memory leak
in crypto driver.

Bug 4039712

Change-Id: I3ef9f93afc7677f3a7317c85d82cbab44d1fed82
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2878402
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-31 04:18:32 -07:00
Akhil R
698c663564 crypto: tegra: Check return value for clk_*() calls
Check return value for clk_prepare_enable calls to fix the
coverity issue.

ID 10162284
ID 10162277
ID 10162262

Bug 3952896

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: I881a806b1f810c1c99c068dd45196c7e9bb49f39
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2870248
Reviewed-by: Kartik . <kkartik@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 Babu Bodla <rbodla@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-24 17:12:06 -07:00
Akhil R
da3ddb1fcb crypto: tegra: Fix list_del corruption
Update the cmdbuf management to fix the list_del corruption
and few improvements.

Bug 3995933

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: I8a692ef042d045813cea0494073832a1b87bcaa3
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2871670
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-22 18:57:26 -07:00
Manish Bhardwaj
d02c050207 crypto: use 4 byte keyhandle for tsec operation
TSEC operation is using 4 byte keyhandle only, whereas
other operations are using 16 byte keyhandle.

Bug 4031715
Bug 4030215

Change-Id: I19e2ca6afaef903824b6a0e99f94e6e68e533af7
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2873636
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-03-21 09:48:31 -07:00
Manish Bhardwaj
a14b439800 nvidia: fix ioctl call and tsec operation
Using this patch we are fixing below 2 issues:-
1. Fixes below issue of invalid ioctl call.
  tnvvse_crypto_dev_ioctl(): invalid ioctl code(-1073440754[0xc004980e])
2. Fixes below crash issue once we introduced
[   50.137568] Unable to handle kernel paging request at virtual address
               ffffffffffffff80
l c00498[   50.172247] Mem abort info:
[   50.172248] printk: console [ttyS2]: printing thread stopped
[   50.172773]   ESR = 0x96000004
[   50.178757] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000081c8f000
[   50.202663] Hardware name: p3710-0010 (DT)
[   50.203353] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   50.204464] pc : tegra_ivc_notified+0x1c/0x160
[   50.205194] lr : tegra_ivc_notified+0x1c/0x160
[   50.205890] sp : ffff8000136733c0
[   50.218023] Call trace:
[   50.218425]  tegra_ivc_notified+0x1c/0x160
[   50.219088]  tegra_hv_ivc_channel_notified+0x24/0x1f0 [tegra_hv]
[   50.220077]  tegra_hv_vse_get_db+0x1f80/0x6680 [tegra_hv_vse_safety]
[   50.221129]  tegra_hv_vse_safety_tsec_get_keyload_status+0xf4/0x37c
                [tegra_hv_vse_safety]
[   50.222478]  tnvvse_crypto_dev_ioctl+0x23bc/0x277c [tegra_nvvse_cryptodev]

Bug 4030215
Bug 4031715

Change-Id: I25be3ab0708a5238daf342dcd20e8a948ee39508
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2872785
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Kasinadha Dendukuri <kdendukuri@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
Reviewed-by: Ashutosh Patel <ashutoshp@nvidia.com>
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-21 02:35:10 -07:00
Jon Hunter
cadbbe3f1f nvvse: cryptodev: Fix build for Linux v6.3
Commit 255e48eb1768 ("crypto: api - Use data directly in completion
function") updates the typedef crypto_completion_t such that a pointer
to the data is directly passed to the completion function instead of a
structure of type crypto_async_request. This breaks building the Tegra
NVVSE Cryptodev driver for Linux v6.3 and so update the driver
accordingly to fix the build.

Bug 4014315

Change-Id: I6e9ed50f5c226548efa5f52d094243f466ad399d
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2867127
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-03-18 16:18:49 -07:00
Manish Bhardwaj
a8830def61 nvidia-oot: Increase keyslot size to 16 bytes
syncing changes b/w nvidia and nvidia-oot repo

Bug 3697677

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I0faa4d3107de5d9430ca91b407903990254e3b49
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2872402
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-17 10:18:08 -07:00
Akhil R
8a61c9f119 crypto: tegra: Fix Coverity defects
Fix resource leak and dead code which causes coverity defects.

ID 10162255
ID 10162275
ID 10162278
ID 10162282
ID 10162263
ID 10162268

Bug 3952896

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: Ib09dde2b65a3fc74bd30a4fb0e1bd594caf826ec
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2850397
Reviewed-by: svcacv <svcacv@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-03-10 19:08:38 -08:00
Manish Bhardwaj
c4ede4ec86 nvidia-oot: fix sparse error in vse driver.
Using this patch we are fixing below sparse
errors :-
1. drivers/crypto/tegra-hv-vse-safety.c:158:15:
   warning: symbol 'gpcdma_dev' was not declared.
   Should it be static?

Bug 3954363

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I00da50a74392fc43e6728cf57abed2545c509e4e
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2863098
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-03-01 10:27:17 -08:00
Advaya Andhare
9fdc09d25a nvvse: cryptodev: user nonce, TSEC alg, ivcDB
Updating Kernel 5.15 with recent linux driver changes.

Jira ESSS-504
bug 3979224

Mentioned below are the details of merging changes -

NVVSE: Added support for TSEC algorithm.

- Add support for TSEC CMAC Sign/Verify commands
- Add support for command to check TSEC Keyload status
- Don't use skip_key parameter as keyslot id is always needed by VSE driver

Jira ESSS-267

nvvse: cryptodev: Add support for user nonce

Changes:

   - Add support for userNonce and zero copy flag for
     TLS and zero copy features
   - Updaeted encrypt/decrypt function call to use
     user nonce.

Jira ESSS-415

nvvse: Updated IVCCFG offset, IVC DB parameters

- Reading max buffer size and gcm dec buffer size from DT
- Update elements of IVC DB.

Jira ESSS-417
Jira ESSS-484
Jira ESSS-468
bug 3974121

Signed-off-by: Advaya Andhare <aandhare@nvidia.com>
Change-Id: Ic7c4580dc4f443db9f7e4fabfb7ec49de2973ed3
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2862329
Reviewed-by: Rakesh Babu Bodla <rbodla@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Nagaraj P N <nagarajp@nvidia.com>
Reviewed-by: Leo Chiu <lchiu@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-02-25 16:07:35 -08:00
Manish Bhardwaj
dee4d41861 nvidia-oot: add support for recovery kernel
Stop compilation for nvidia-oot drivers, whose
core kernel support is missing in recovery
kernel.

Bug 3863448

Change-Id: I36f09f74d4448af4b13eeebaaeadc53c3f83e002
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2856892
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-02-23 22:53:00 -08:00
Manish Bhardwaj
eb1d8b3b58 vse: update host1x driver compatibile string
Using this patch we are updating the host1x driver's
compatibility string since this has been changed for
upstream host1x driver

JIRA ESLC-7104

Change-Id: If1502c7639a0c4037cbcab6454a262e3990a74d1
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2824204
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-12-13 06:27:09 -08:00
Manish Bhardwaj
ac16d3a12b nvidia-oot: sync vse driver with nvidia repo
Using this patch we are syncing changes of
vse driver from nvidia repo to nvidia-oot repo

JIRA ESLC-7104

Change-Id: I5d45f4b645ad9c002c8f3b178fc20eb6f7324cd3
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2824196
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-12-13 06:27:05 -08:00
Manish Bhardwaj
ddd988fbf6 nvidia-oot: add support for hv-vse driver
Using this patch we are adding support for
hv-vse driver in oot kernel.

List of commit ids still which we are using file from
nvidia repo.
4eb5988cde vse-safety: align gpcdma buffer to 64 bytes
4852794a4a crypto: fix array out-of-bound access defect
56e33f53c8 crypto: extend features in multi-IVC development
0b7c238968 (multi_ivc) crypto: check crypto ctx before handling
7e35a5739b crypto: check crypto request before handling
446c88152f Revert "crypto: vse: add multi-ivc support-10"
c33753cbd6 crypto: disable Power management for GPCDMA cfg

JIRA ESLC-6885

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I77c5abcff045e444ff320fbf2709b07f0ab383aa
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2794878
Reviewed-by: Leo Chiu <lchiu@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-28 03:00:46 -07:00
Jon Hunter
619afce1dc crypto: tegra: Fix unused variable warnings
Fix the unused variable warnings in the Tegra SE driver by removing the
unused 'err' variables.

Bug 3820317

Change-Id: I74b9ea6f34c48aeb41d11e0d4c093d52ddf058b6
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2792538
Reviewed-by: Akhil R <akhilrajeev@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-20 02:19:48 -07:00
Jon Hunter
4c27f460dd nvidia: oot: Fix include paths
When building NVGPU and Host1x-Nvhost driver as OOT modules it is not
necessary to copy the host1x-next.h and nvmap_exports.h header files
because these headers files are already present in the source
repository. Fix this by updating the include paths used for building
these drivers and remove the copy of these headers.

Bug 3817518

Change-Id: I0084055a27d3547642c034546a4b7192e8da52e6
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2785906
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-10-07 03:09:59 -07:00
Manish Bhardwaj
27f17e56d1 crypto: sync crypto driver from kernel/nvidia
Using this patch we are pulling in the missing changes
from kernel/nvidia directory.

JIRA ESLC-6885

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I9376e14971be0f4d40f759858fcc9db90a7b9d72
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2785534
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-06 17:22:00 -07:00
Akhil R
0b7732c7a4 crypto: tegra: Remove nvhost_module*() functions
Add alternative function to initialize clocks instead of
nvhost_module_init() to fix "failed to get reset" issue.

Also, remove other failing nvhost functions as the nvhost driver
exists only for backward compatibility.

Bug 3583641

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Fixes: 198a0ba027 ("crypto: tegra: Add support for SE on host1x to OOT")
Change-Id: Id6a5ecf7900643b13518e1c9cf657aac99a6bd5d
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2782949
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-04 13:30:42 -07:00
Akhil R
41a9763998 crypto: tegra: Add NVVSE Cryptodev
Add NVVSE cryptodev for Security Engine

Bug 3583641

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: Iec75fe4174d5fabeb4d22813042c3bca1171d161
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2768833
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-09-24 13:16:56 -07:00
Akhil R
bc7b8e620b crypto: tegra: Remove unused function
Removing unused function which throws a warning during compilation.

Bug 3767126

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: I47fbed286188d8f1124f526d65d844cd329d9e5c
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2772880
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-09-09 11:24:55 -07:00
Akhil R
198a0ba027 crypto: tegra: Add support for SE on host1x to OOT
Add driver to support Security Engine on host1x as OOT module

Bug 3583641

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: If2eaff4e783cc6426db6a711e1300568735dab76
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2726869
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-08-29 05:12:27 -07:00