Am Dienstag, 23. Januar 2018, 00:04:01 CET schrieb Junaid Shahid: Hi Junaid, > gcmaes_encrypt/decrypt perform zero-copy crypto if both the source and > destination satisfy certain conditions (single sglist entry located in > low-mem or within a single high-mem page). But two copies are done > otherwise, even if one of source or destination still satisfies the > zero-copy conditions. This optimization is now extended to avoid the > copy on the side that does satisfy the zero-copy conditions. > > Signed-off-by: Junaid Shahid <junaids@xxxxxxxxxx> > --- > arch/x86/crypto/aesni-intel_glue.c | 256 > +++++++++++++++++++------------------ 1 file changed, 134 insertions(+), > 122 deletions(-) > > diff --git a/arch/x86/crypto/aesni-intel_glue.c > b/arch/x86/crypto/aesni-intel_glue.c index 3bf3dcf29825..a46eb2d25f71 > 100644 > --- a/arch/x86/crypto/aesni-intel_glue.c > +++ b/arch/x86/crypto/aesni-intel_glue.c > @@ -744,136 +744,148 @@ static int generic_gcmaes_set_authsize(struct > crypto_aead *tfm, return 0; > } > > +static bool is_mappable(struct scatterlist *sgl, unsigned long len) > +{ > + return (!PageHighMem(sg_page(sgl)) || sgl->offset + len <= PAGE_SIZE) > + && len <= sgl->length; Please integrate the patch https://www.mail-archive.com/linux-crypto@xxxxxxxxxxxxxxx/msg30542.html @Herbert: If this patch series goes in, then the mentioned patch would not be needed for the current implementation, but only for stable. Ciao Stephan