• Laura Abbott's avatar
    crypto: testmgr - Use heap buffer for acomp test input · 02608e02
    Laura Abbott authored
    Christopher Covington reported a crash on aarch64 on recent Fedora
    kernels:
    
    kernel BUG at ./include/linux/scatterlist.h:140!
    Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
    Modules linked in:
    CPU: 2 PID: 752 Comm: cryptomgr_test Not tainted 4.9.0-11815-ge93b1cc8 #162
    Hardware name: linux,dummy-virt (DT)
    task: ffff80007c650080 task.stack: ffff800008910000
    PC is at sg_init_one+0xa0/0xb8
    LR is at sg_init_one+0x24/0xb8
    ...
    [<ffff000008398db8>] sg_init_one+0xa0/0xb8
    [<ffff000008350a44>] test_acomp+0x10c/0x438
    [<ffff000008350e20>] alg_test_comp+0xb0/0x118
    [<ffff00000834f28c>] alg_test+0x17c/0x2f0
    [<ffff00000834c6a4>] cryptomgr_test+0x44/0x50
    [<ffff0000080dac70>] kthread+0xf8/0x128
    [<ffff000008082ec0>] ret_from_fork+0x10/0x50
    
    The test vectors used for input are part of the kernel image. These
    inputs are passed as a buffer to sg_init_one which eventually blows up
    with BUG_ON(!virt_addr_valid(buf)). On arm64, virt_addr_valid returns
    false for the kernel image since virt_to_page will not return the
    correct page. Fix this by copying the input vectors to heap buffer
    before setting up the scatterlist.
    Reported-by: default avatarChristopher Covington <cov@codeaurora.org>
    Fixes: d7db7a88 ("crypto: acomp - update testmgr with support for acomp")
    Signed-off-by: default avatarLaura Abbott <labbott@redhat.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    02608e02
testmgr.c 90.9 KB