Re: [PATCH v5] crypto: rsassa-pkcs1 - Avoid cacheline sharing with underlying driver
Herbert Xu <[email protected]> Sat, 1 Aug 2026 16:37:38 +1000
| Newsgroups | org.kernel.vger.linux-crypto,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Jul 31, 2026 at 12:44:46PM +1000, Changwei Zou wrote: > out_buf is used as a DMA buffer for the RSA verification operation. > If it is not aligned to CRYPTO_DMA_ALIGN, cacheline sharing > problems (data corruption) would occur on CPUs with DMA-incoherent caches, > leading to -EKEYREJECTED. > > Rename out_buf to buf, as it serves as both the input and output buffer. > Add a buf_ptr pointer to track its position. > > Allocate the buffer separately via kmalloc(), which guarantees cacheline > alignment on architectures without fully coherent DMA. > This acts as a defensive measure, and avoids the need for an extra copy > in the underlying driver, which should check alignment before supplying > buffers to the hardware. > > The intermittent error 'Key was rejected by service' on i.MX8 with CAAM > can be triggered when loading signed kernel modules. > > for i in $(seq 1 100); do > sudo modprobe xfs 2>&1 && echo "SUCCESS on attempt $i" \ > && sudo rmmod xfs || echo "FAILED on attempt $i" > done > > Signed-off-by: Changwei Zou <[email protected]> > --- > crypto/rsassa-pkcs1.c | 31 ++++++++++++++++--------------- > 1 file changed, 16 insertions(+), 15 deletions(-) In the Crypto API we don't ask the user to provide aligned data. In general it's the driver's responsibility to ensure proper alignment. Which driver are we talking about here? Thanks, -- Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt