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

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

 



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.

> 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?

> 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 */

>  #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.

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