On Wed, Apr 29, 2020 at 05:42:02PM +0300, Tero Kristo wrote: > > diff --git a/drivers/crypto/omap-crypto.c b/drivers/crypto/omap-crypto.c > index cc88b7362bc2..cbc5a4151c3c 100644 > --- a/drivers/crypto/omap-crypto.c > +++ b/drivers/crypto/omap-crypto.c > @@ -178,11 +178,14 @@ static void omap_crypto_copy_data(struct scatterlist *src, > amt = min(src->length - srco, dst->length - dsto); > amt = min(len, amt); > > - srcb = sg_virt(src) + srco; > - dstb = sg_virt(dst) + dsto; > + srcb = kmap_atomic(sg_page(src)) + srco + src->offset; > + dstb = kmap_atomic(sg_page(dst)) + dsto + dst->offset; > > memcpy(dstb, srcb, amt); > > + kunmap_atomic(srcb); > + kunmap_atomic(dstb); With dst you also need to flush the cache. Please refer to the flush dcache call in include/crypto/scatterwalk.h. Thanks, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt