This push fixes regressions in caam and qat.

-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEn51F/lCuNhUwmDeSxycdCkmxi6cFAmW5oRIACgkQxycdCkmx
 i6dMgQ//aYG7w3OdPYPzr9hLzfA4Cn1u1gN0CH97e7l8xWvr7JxAyjg2pcDo3BXi
 xic80YWoz7eqpBE50C50U/+z0S9Kv5Wys5mg/85osHRjjpS+3sicRdIQNm73K1q1
 JkxZM4IVgrP7IEaMpSeWGmXRwu64nhrewYpdYzy6nRg8TT4Bc6Tc8FxDUNddwt39
 048L6++fXtGy7G4XX30e5YzsJxdz1/6K1qfCknVfFJOEqedEjlQ/u65DooCYpRwb
 AWowm56DAho7iXsbFAADyL6Zba3oiHKvV8zH0wLAachd8htZD1oe2kdVY8YXamXt
 q51HB+edl8BE2Gzn4dNocRsfd9db9pe65eVyC0FSMjuHY/4bBEfqeRtYon/pkAp6
 hC25F/J0KRil9S6qJVCO4bukk/4HhMFD1vN+CfkB3YII7sFZ/L24YTBvS9GYAh+7
 nFxe3EHjaXMEqqRIBHx5RMDSiWfCfnM/qR3NLEX42X0yXg7tzxoUwE99sEYpXFk2
 q84UFAdme3U2ARrrEdJgbiR9SSzPqR1rxH4tN825MBhHgCtmhFCTcW4I+/ciihc3
 jl9XBvUohJwvwdvnT5TTgMG//t0hzRJbalNU3Pv8Td0kQQZd2MeHRTezVCVoFTqZ
 fro3CSpdUfOuBl1mRs+MPN05i1zy1P2FT7aWbW03u2NOreCF4ow=
 =AWvp
 -----END PGP SIGNATURE-----

Merge tag 'v6.8-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6

Pull crypto fixes from Herbert Xu:
 "Fix regressions in caam and qat"

* tag 'v6.8-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
  crypto: caam - fix asynchronous hash
  crypto: qat - fix arbiter mapping generation algorithm for QAT 402xx
This commit is contained in:
Linus Torvalds 2024-02-01 10:02:40 -08:00
commit 8a2514c0c6
3 changed files with 11 additions and 4 deletions

View File

@ -4545,6 +4545,7 @@ struct caam_hash_alg {
struct list_head entry;
struct device *dev;
int alg_type;
bool is_hmac;
struct ahash_alg ahash_alg;
};
@ -4571,7 +4572,7 @@ static int caam_hash_cra_init(struct crypto_tfm *tfm)
ctx->dev = caam_hash->dev;
if (alg->setkey) {
if (caam_hash->is_hmac) {
ctx->adata.key_dma = dma_map_single_attrs(ctx->dev, ctx->key,
ARRAY_SIZE(ctx->key),
DMA_TO_DEVICE,
@ -4611,7 +4612,7 @@ static int caam_hash_cra_init(struct crypto_tfm *tfm)
* For keyed hash algorithms shared descriptors
* will be created later in setkey() callback
*/
return alg->setkey ? 0 : ahash_set_sh_desc(ahash);
return caam_hash->is_hmac ? 0 : ahash_set_sh_desc(ahash);
}
static void caam_hash_cra_exit(struct crypto_tfm *tfm)
@ -4646,12 +4647,14 @@ static struct caam_hash_alg *caam_hash_alloc(struct device *dev,
template->hmac_name);
snprintf(alg->cra_driver_name, CRYPTO_MAX_ALG_NAME, "%s",
template->hmac_driver_name);
t_alg->is_hmac = true;
} else {
snprintf(alg->cra_name, CRYPTO_MAX_ALG_NAME, "%s",
template->name);
snprintf(alg->cra_driver_name, CRYPTO_MAX_ALG_NAME, "%s",
template->driver_name);
t_alg->ahash_alg.setkey = NULL;
t_alg->is_hmac = false;
}
alg->cra_module = THIS_MODULE;
alg->cra_init = caam_hash_cra_init;

View File

@ -1753,6 +1753,7 @@ static struct caam_hash_template driver_hash[] = {
struct caam_hash_alg {
struct list_head entry;
int alg_type;
bool is_hmac;
struct ahash_engine_alg ahash_alg;
};
@ -1804,7 +1805,7 @@ static int caam_hash_cra_init(struct crypto_tfm *tfm)
} else {
if (priv->era >= 6) {
ctx->dir = DMA_BIDIRECTIONAL;
ctx->key_dir = alg->setkey ? DMA_TO_DEVICE : DMA_NONE;
ctx->key_dir = caam_hash->is_hmac ? DMA_TO_DEVICE : DMA_NONE;
} else {
ctx->dir = DMA_TO_DEVICE;
ctx->key_dir = DMA_NONE;
@ -1862,7 +1863,7 @@ static int caam_hash_cra_init(struct crypto_tfm *tfm)
* For keyed hash algorithms shared descriptors
* will be created later in setkey() callback
*/
return alg->setkey ? 0 : ahash_set_sh_desc(ahash);
return caam_hash->is_hmac ? 0 : ahash_set_sh_desc(ahash);
}
static void caam_hash_cra_exit(struct crypto_tfm *tfm)
@ -1915,12 +1916,14 @@ caam_hash_alloc(struct caam_hash_template *template,
template->hmac_name);
snprintf(alg->cra_driver_name, CRYPTO_MAX_ALG_NAME, "%s",
template->hmac_driver_name);
t_alg->is_hmac = true;
} else {
snprintf(alg->cra_name, CRYPTO_MAX_ALG_NAME, "%s",
template->name);
snprintf(alg->cra_driver_name, CRYPTO_MAX_ALG_NAME, "%s",
template->driver_name);
halg->setkey = NULL;
t_alg->is_hmac = false;
}
alg->cra_module = THIS_MODULE;
alg->cra_init = caam_hash_cra_init;

View File

@ -463,6 +463,7 @@ void adf_init_hw_data_4xxx(struct adf_hw_device_data *hw_data, u32 dev_id)
hw_data->fw_name = ADF_402XX_FW;
hw_data->fw_mmp_name = ADF_402XX_MMP;
hw_data->uof_get_name = uof_get_name_402xx;
hw_data->get_ena_thd_mask = get_ena_thd_mask;
break;
case ADF_401XX_PCI_DEVICE_ID:
hw_data->fw_name = ADF_4XXX_FW;