Re: [PATCH 09/30] crypto: talitos - remove unnecessary alignmask for ahashes

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

 




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;
>   }




[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]
  Powered by Linux