Re: [PATCH] crypto: caam - Use bounce buffer for unaligned RSA destination buffers
Herbert Xu <[email protected]>
| Newsgroups | org.kernel.vger.linux-crypto,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Aug 05, 2026 at 02:19:02PM +1000, Changwei Zou wrote: > The CAAM RSA driver directly DMA-maps the destination buffer supplied by > the caller via req->dst without checking whether it meets the cacheline > alignment requirements of DMA-incoherent hardware such as i.MX8. > > On CPUs with non-coherent DMA caches, if the destination buffer shares a > cacheline with other data (i.e. it is not cacheline-aligned), cache > writeback/invalidation during DMA can corrupt adjacent memory or cause > stale data to be read back. This manifests as intermittent -EKEYREJECTED > errors when loading signed kernel modules. > > When any segment of req->dst is not cacheline-aligned, allocate a > single contiguous aligned bounce buffer covering the full dst_len, > redirect the operation to it, and scatter-copy the result back to the > original destination once the hardware has completed the operation. > > 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]> > Assisted-by: OpenCode:claude-sonnet-4.6 > --- > drivers/crypto/caam/caampkc.c | 66 ++++++++++++++++++++++++++++++++++- > drivers/crypto/caam/caampkc.h | 6 ++++ > 2 files changed, 71 insertions(+), 1 deletion(-) Please take a look at the Sashiko reviews: https://sashiko.dev/#/patchset/20260805041902.1575170-1-changwei.zou%40canonical.com Thanks, -- Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt