Commit 8d90a86e authored by Eric Biggers's avatar Eric Biggers Committed by Ulf Hansson
Browse files

mmc: sdhci-msm: fix crypto key eviction



Commit c7eed31e ("mmc: sdhci-msm: Switch to the new ICE API")
introduced an incorrect check of the algorithm ID into the key eviction
path, and thus qcom_ice_evict_key() is no longer ever called.  Fix it.

Fixes: c7eed31e ("mmc: sdhci-msm: Switch to the new ICE API")
Cc: stable@vger.kernel.org
Cc: Abel Vesa <abel.vesa@linaro.org>
Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
Message-ID: <20241213041958.202565-6-ebiggers@kernel.org>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent f3d87abe
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -1867,20 +1867,20 @@ static int sdhci_msm_program_key(struct cqhci_host *cq_host,
	struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host);
	union cqhci_crypto_cap_entry cap;

	if (!(cfg->config_enable & CQHCI_CRYPTO_CONFIGURATION_ENABLE))
		return qcom_ice_evict_key(msm_host->ice, slot);

	/* Only AES-256-XTS has been tested so far. */
	cap = cq_host->crypto_cap_array[cfg->crypto_cap_idx];
	if (cap.algorithm_id != CQHCI_CRYPTO_ALG_AES_XTS ||
		cap.key_size != CQHCI_CRYPTO_KEY_SIZE_256)
		return -EINVAL;

	if (cfg->config_enable & CQHCI_CRYPTO_CONFIGURATION_ENABLE)
	return qcom_ice_program_key(msm_host->ice,
				    QCOM_ICE_CRYPTO_ALG_AES_XTS,
				    QCOM_ICE_CRYPTO_KEY_SIZE_256,
				    cfg->crypto_key,
				    cfg->data_unit_size, slot);
	else
		return qcom_ice_evict_key(msm_host->ice, slot);
}

#else /* CONFIG_MMC_CRYPTO */