• 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
caamhash.c 51.1 KB