Re: [PATCH RFC v3 1/2] mmc: core: Add vendor hook to control reprogram keys to Crypto Engine

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 10/8/2024 7:30 PM, Ulf Hansson wrote:
On Sun, 6 Oct 2024 at 15:55, Seshu Madhavi Puppala
<quic_spuppala@xxxxxxxxxxx> wrote:

Add mmc_host_ops hook avoid_reprogram_allkeys to control
reprogramming keys to Inline Crypto Engine by vendor as some
vendors might not require this feature.

Signed-off-by: Seshu Madhavi Puppala <quic_spuppala@xxxxxxxxxxx>
Co-developed-by: Ram Prakash Gupta <quic_rampraka@xxxxxxxxxxx>
Signed-off-by: Ram Prakash Gupta <quic_rampraka@xxxxxxxxxxx>
---
  drivers/mmc/core/crypto.c | 8 +++++---
  drivers/mmc/host/sdhci.c  | 6 ++++++
  include/linux/mmc/host.h  | 7 +++++++
  3 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/core/crypto.c b/drivers/mmc/core/crypto.c
index fec4fbf16a5b..4168f7d135ff 100644
--- a/drivers/mmc/core/crypto.c
+++ b/drivers/mmc/core/crypto.c
@@ -14,9 +14,11 @@

  void mmc_crypto_set_initial_state(struct mmc_host *host)
  {
-       /* Reset might clear all keys, so reprogram all the keys. */
-       if (host->caps2 & MMC_CAP2_CRYPTO)
-               blk_crypto_reprogram_all_keys(&host->crypto_profile);
+       if (host->ops->avoid_reprogram_allkeys && !host->ops->avoid_reprogram_allkeys()) {
+               /* Reset might clear all keys, so reprogram all the keys. */
+               if (host->caps2 & MMC_CAP2_CRYPTO)
+                       blk_crypto_reprogram_all_keys(&host->crypto_profile);

Don't you even need to call this once, during the first initialization
of the card?

The first card initialization is done during the boot up for qcom socs and the kernel keyring contains no keys immediately after bootup.After the initialization of the card, the block i/o operations to encrypted folders will automatically trigger the corresponding program key calls to the crypto engine since the kernel keyring does not contain the required encryption key. So, it is not necessary to explicitly reprogram all keys for qcom socs.

+       }
  }


[...]

Kind regards
Uffe




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux