summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/nvddk/nvddk_aes.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/nvddk/nvddk_aes.c')
-rw-r--r--arch/arm/mach-tegra/nvddk/nvddk_aes.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/nvddk/nvddk_aes.c b/arch/arm/mach-tegra/nvddk/nvddk_aes.c
index 9e7008c0e464..530363f1d743 100644
--- a/arch/arm/mach-tegra/nvddk/nvddk_aes.c
+++ b/arch/arm/mach-tegra/nvddk/nvddk_aes.c
@@ -603,6 +603,14 @@ NvDdkAesSetAndLockSecureStorageKey(
AesHwIv Iv;
AesHwEngine Engine;
+ NvOsMutexLock(gs_hAesCoreEngineMutex);
+ if (!gs_pAesCoreEngine->SskUpdateAllowed)
+ {
+ NvOsMutexUnlock(gs_hAesCoreEngineMutex);
+ return NvError_NotSupported;
+ }
+ NvOsMutexUnlock(gs_hAesCoreEngineMutex);
+
NVDDK_AES_CHECK_INPUT_PARAMS(pSecureStorageKey);
NVDDK_AES_CHECK_USER_IDENTITY;
@@ -1892,6 +1900,8 @@ NvError AesCoreInitEngine(const NvRmDeviceHandle hRmDevice)
0,
NULL));
}
+ gs_pAesCoreEngine->SskUpdateAllowed =
+ pAesHwCtxt->ppEngineCaps[AesHwEngine_A]->pAesInterf->AesHwIsSskUpdateAllowed();
return e;
}