• Eric Biggers's avatar
    crypto: x86/chacha - avoid sleeping under kernel_fpu_begin() · f9c9bdb5
    Eric Biggers authored
    Passing atomic=true to skcipher_walk_virt() only makes the later
    skcipher_walk_done() calls use atomic memory allocations, not
    skcipher_walk_virt() itself.  Thus, we have to move it outside of the
    preemption-disabled region (kernel_fpu_begin()/kernel_fpu_end()).
    
    (skcipher_walk_virt() only allocates memory for certain layouts of the
    input scatterlist, hence why I didn't notice this earlier...)
    
    Reported-by: syzbot+9bf843c33f782d73ae7d@syzkaller.appspotmail.com
    Fixes: 4af78261 ("crypto: x86/chacha20 - add XChaCha20 support")
    Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    f9c9bdb5
chacha_glue.c 8.52 KB