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