Re: [PATCH] mmc: core: crypto: Add MMC_CAP2_CRYPTO_RETAIN_KEY

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

 





On 8/22/2023 10:20 AM, Eric Biggers wrote:
On Mon, Aug 21, 2023 at 12:20:37PM +0530, Om Prakash Singh wrote:
Add new capability MMC_CAP2_CRYPTO_RETAIN_KEY for mmc host that
support inline crypto key retention and doesn't need reinitialization
of all keys after mmc host has reinitialized.

MMC_CAP2_RETAINS_CRYPTO_KEYS would be a better name.
I will update in next version

diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
index 1c935b5bafe1..cfc2328f90ed 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -1828,6 +1828,7 @@ static int sdhci_msm_ice_init(struct sdhci_msm_host *msm_host,
msm_host->ice = ice;
  	mmc->caps2 |= MMC_CAP2_CRYPTO;
+	mmc->caps2 |= MMC_CAP2_CRYPTO_RETAIN_KEY;
return 0;
  }

Are you sure that *all* versions of Qualcomm's eMMC inline encryption hardware
have this behavior?
Thanks for pointing this out. I am not sure and checking internally for more information.


diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 461d1543893b..74c69415746d 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -417,8 +417,10 @@ struct mmc_host {
  #define MMC_CAP2_MERGE_CAPABLE	(1 << 26)	/* Host can merge a segment over the segment size */
  #ifdef CONFIG_MMC_CRYPTO
  #define MMC_CAP2_CRYPTO		(1 << 27)	/* Host supports inline encryption */
+#define MMC_CAP2_CRYPTO_RETAIN_KEY (1 << 28)	/* Host doesn't need inline encryption key reinitialization */

How about:

/* Host retains inline encryption keys on reset */

I will update in next version

  #else
  #define MMC_CAP2_CRYPTO		0
+#define MMC_CAP2_CRYPTO_RETAIN_KEY 0
  #endif
  #define MMC_CAP2_ALT_GPT_TEGRA	(1 << 28)	/* Host with eMMC that has GPT entry at a non-standard location */

'1 << 28' is already used.
ack
Also, the new flag doesn't need to be in the #ifdef section.

- Eric



[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