Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

crypto: omap - Avoid redundant copy when using truncated sg list

omap_crypto_cleanup() currently copies data from sg to orig if either
copy flag is set. However OMAP_CRYPTO_SG_COPIED means that sg refers
to the same pages as orig, truncated to len bytes. There is no need
to copy in this case.

Only copy data if the OMAP_CRYPTO_DATA_COPIED flag is set.

Fixes: 74ed87e7e7f7 ("crypto: omap - add base support library for common ...")
Signed-off-by: Ben Hutchings <ben.hutchings@mind.be>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Ben Hutchings and committed by
Herbert Xu
ffe3ee8b 9491923e

+1 -1
+1 -1
drivers/crypto/omap-crypto.c
··· 210 210 buf = sg_virt(sg); 211 211 pages = get_order(len); 212 212 213 - if (orig && (flags & OMAP_CRYPTO_COPY_MASK)) 213 + if (orig && (flags & OMAP_CRYPTO_DATA_COPIED)) 214 214 omap_crypto_copy_data(sg, orig, offset, len); 215 215 216 216 if (flags & OMAP_CRYPTO_DATA_COPIED)