• Aymen Sghaier's avatar
    crypto: caam - fix zero-length buffer DMA mapping · 9f79bd5b
    Aymen Sghaier authored
    commit 04e6d25c upstream.
    
    Recent changes - probably DMA API related (generic and/or arm64-specific) -
    exposed a case where driver maps a zero-length buffer:
    ahash_init()->ahash_update()->ahash_final() with a zero-length string to
    hash
    
    kernel BUG at kernel/dma/swiotlb.c:475!
    Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
    Modules linked in:
    CPU: 2 PID: 1823 Comm: cryptomgr_test Not tainted 4.20.0-rc1-00108-g00c9fe37 #1
    Hardware name: LS1046A RDB Board (DT)
    pstate: 80000005 (Nzcv daif -PAN -UAO)
    pc : swiotlb_tbl_map_single+0x170/0x2b8
    lr : swiotlb_map_page+0x134/0x1f8
    sp : ffff00000f79b8f0
    x29: ffff00000f79b8f0 x28: 0000000000000000
    x27: ffff0000093d0000 x26: 0000000000000000
    x25: 00000000001f3ffe x24: 0000000000200000
    x23: 0000000000000000 x22: 00000009f2c538c0
    x21: ffff800970aeb410 x20: 0000000000000001
    x19: ffff800970aeb410 x18: 0000000000000007
    x17: 000000000000000e x16: 0000000000000001
    x15: 0000000000000019 x14: c32cb8218a167fe8
    x13: ffffffff00000000 x12: ffff80097fdae348
    x11: 0000800976bca000 x10: 0000000000000010
    x9 : 0000000000000000 x8 : ffff0000091fd6c8
    x7 : 0000000000000000 x6 : 00000009f2c538bf
    x5 : 0000000000000000 x4 : 0000000000000001
    x3 : 0000000000000000 x2 : 00000009f2c538c0
    x1 : 00000000f9fff000 x0 : 0000000000000000
    Process cryptomgr_test (pid: 1823, stack limit = 0x(____ptrval____))
    Call trace:
     swiotlb_tbl_map_single+0x170/0x2b8
     swiotlb_map_page+0x134/0x1f8
     ahash_final_no_ctx+0xc4/0x6cc
     ahash_final+0x10/0x18
     crypto_ahash_op+0x30/0x84
     crypto_ahash_final+0x14/0x1c
     __test_hash+0x574/0xe0c
     test_hash+0x28/0x80
     __alg_test_hash+0x84/0xd0
     alg_test_hash+0x78/0x144
     alg_test.part.30+0x12c/0x2b4
     alg_test+0x3c/0x68
     cryptomgr_test+0x44/0x4c
     kthread+0xfc/0x128
     ret_from_fork+0x10/0x18
    Code: d34bfc18 2a1a03f7 1a9f8694 35fff89a (d4210000)
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarAymen Sghaier <aymen.sghaier@nxp.com>
    Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    9f79bd5b
Name
Last commit
Last update
..
Kconfig Loading commit data...
Makefile Loading commit data...
caamalg.c Loading commit data...
caamalg_desc.c Loading commit data...
caamalg_desc.h Loading commit data...
caamalg_qi.c Loading commit data...
caamalg_qi2.c Loading commit data...
caamalg_qi2.h Loading commit data...
caamhash.c Loading commit data...
caamhash_desc.c Loading commit data...
caamhash_desc.h Loading commit data...
caampkc.c Loading commit data...
caampkc.h Loading commit data...
caamrng.c Loading commit data...
compat.h Loading commit data...
ctrl.c Loading commit data...
ctrl.h Loading commit data...
desc.h Loading commit data...
desc_constr.h Loading commit data...
dpseci.c Loading commit data...
dpseci.h Loading commit data...
dpseci_cmd.h Loading commit data...
error.c Loading commit data...
error.h Loading commit data...
intern.h Loading commit data...
jr.c Loading commit data...
jr.h Loading commit data...
key_gen.c Loading commit data...
key_gen.h Loading commit data...
pdb.h Loading commit data...
pkc_desc.c Loading commit data...
qi.c Loading commit data...
qi.h Loading commit data...
regs.h Loading commit data...
sg_sw_qm.h Loading commit data...
sg_sw_qm2.h Loading commit data...
sg_sw_sec4.h Loading commit data...