Le 22/10/2023 à 10:10, Eric Biggers a écrit : > From: Eric Biggers <ebiggers@xxxxxxxxxx> > > The crypto API's support for alignmasks for ahash algorithms is nearly > useless, as its only effect is to cause the API to align the key and > result buffers. The drivers that happen to be specifying an alignmask > for ahash rarely actually need it. When they do, it's easily fixable, > especially considering that these buffers cannot be used for DMA. > > In preparation for removing alignmask support from ahash, this patch > makes the talitos driver no longer use it. This driver didn't actually > rely on it; it only writes to the result buffer in > common_nonsnoop_hash_unmap(), simply using memcpy(). And this driver's > "ahash_setkey()" function does not assume any alignment for the key > buffer. I can't really see the link between your explanation and commit c9cca7034b34 ("crypto: talitos - Align SEC1 accesses to 32 bits boundaries."). Was that commit wrong ? Christophe > > Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx> > --- > drivers/crypto/talitos.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c > index 4ca4fbd227bce..e8f710d87007b 100644 > --- a/drivers/crypto/talitos.c > +++ b/drivers/crypto/talitos.c > @@ -3252,21 +3252,21 @@ static struct talitos_crypto_alg *talitos_alg_alloc(struct device *dev, > dev_err(dev, "unknown algorithm type %d\n", t_alg->algt.type); > devm_kfree(dev, t_alg); > return ERR_PTR(-EINVAL); > } > > alg->cra_module = THIS_MODULE; > if (t_alg->algt.priority) > alg->cra_priority = t_alg->algt.priority; > else > alg->cra_priority = TALITOS_CRA_PRIORITY; > - if (has_ftr_sec1(priv)) > + if (has_ftr_sec1(priv) && t_alg->algt.type != CRYPTO_ALG_TYPE_AHASH) > alg->cra_alignmask = 3; > else > alg->cra_alignmask = 0; > alg->cra_ctxsize = sizeof(struct talitos_ctx); > alg->cra_flags |= CRYPTO_ALG_KERN_DRIVER_ONLY; > > t_alg->dev = dev; > > return t_alg; > }