linux_dsm_epyc7002/drivers/crypto/caam
Aymen Sghaier 04e6d25c5b crypto: caam - fix zero-length buffer DMA mapping
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-g00c9fe37a7f2 #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: Aymen Sghaier <aymen.sghaier@nxp.com>
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2019-01-10 21:37:31 +08:00
..
caamalg_desc.c crypto: caam/qi2 - add support for Chacha20 + Poly1305 2018-11-16 14:11:03 +08:00
caamalg_desc.h crypto: caam/qi2 - add support for Chacha20 + Poly1305 2018-11-16 14:11:03 +08:00
caamalg_qi2.c crypto: chacha20-generic - refactor to allow varying number of rounds 2018-11-20 14:26:55 +08:00
caamalg_qi2.h crypto: caam/qi2 - add support for ahash algorithms 2018-09-21 13:24:51 +08:00
caamalg_qi.c crypto: caam - add register map changes cf. Era 10 2018-11-16 14:11:03 +08:00
caamalg.c crypto: chacha20-generic - refactor to allow varying number of rounds 2018-11-20 14:26:55 +08:00
caamhash_desc.c crypto: caam - export ahash shared descriptor generation 2018-09-21 13:24:51 +08:00
caamhash_desc.h crypto: caam - export ahash shared descriptor generation 2018-09-21 13:24:51 +08:00
caamhash.c crypto: caam - fix zero-length buffer DMA mapping 2019-01-10 21:37:31 +08:00
caampkc.c crypto: caam - add register map changes cf. Era 10 2018-11-16 14:11:03 +08:00
caampkc.h crypto: caam - strip input zeros from RSA input buffer 2018-04-21 00:59:03 +08:00
caamrng.c crypto: caam - add register map changes cf. Era 10 2018-11-16 14:11:03 +08:00
compat.h crypto: chacha20-generic - refactor to allow varying number of rounds 2018-11-20 14:26:55 +08:00
ctrl.c crypto: caam - add register map changes cf. Era 10 2018-11-16 14:11:03 +08:00
ctrl.h crypto: caam - staticize caam_get_era() 2018-04-21 00:58:36 +08:00
desc_constr.h crypto: caam/jr - add support for Chacha20 + Poly1305 2018-11-16 14:11:03 +08:00
desc.h crypto: caam/jr - add support for Chacha20 + Poly1305 2018-11-16 14:11:03 +08:00
dpseci_cmd.h crypto: caam - add DPAA2-CAAM (DPSECI) backend API 2018-09-21 13:24:51 +08:00
dpseci.c crypto: caam - add DPAA2-CAAM (DPSECI) backend API 2018-09-21 13:24:51 +08:00
dpseci.h crypto: caam - add DPAA2-CAAM (DPSECI) backend API 2018-09-21 13:24:51 +08:00
error.c crypto: caam/qi2 - add DPAA2-CAAM driver 2018-09-21 13:24:51 +08:00
error.h crypto: caam - add Queue Interface v2 error codes 2018-09-21 13:24:51 +08:00
intern.h crypto: caam - fix MC firmware detection 2018-05-31 00:13:46 +08:00
jr.c crypto: caam - add SPDX license identifier to all files 2018-10-17 14:16:18 +08:00
jr.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig crypto: caam - add SPDX license identifier to all files 2018-10-17 14:16:18 +08:00
key_gen.c crypto: caam - add Derived Key Protocol (DKP) support 2017-12-28 17:56:48 +11:00
key_gen.h crypto: caam - add Derived Key Protocol (DKP) support 2017-12-28 17:56:48 +11:00
Makefile crypto: caam - export ahash shared descriptor generation 2018-09-21 13:24:51 +08:00
pdb.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pkc_desc.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qi.c crypto: caam/qi - simplify CGR allocation, freeing 2018-10-17 14:14:46 +08:00
qi.h crypto: caam/qi - simplify CGR allocation, freeing 2018-10-17 14:14:46 +08:00
regs.h crypto: caam - add register map changes cf. Era 10 2018-11-16 14:11:03 +08:00
sg_sw_qm2.h crypto: caam - add SPDX license identifier to all files 2018-10-17 14:16:18 +08:00
sg_sw_qm.h crypto: caam - add SPDX license identifier to all files 2018-10-17 14:16:18 +08:00
sg_sw_sec4.h staging: fsl-mc: Move DPIO from staging to drivers/soc/fsl 2018-07-24 16:18:55 -05:00