Vakul Garg
9c23b7d3d6
crypto: caam - Fixed the memory out of bound overwrite issue
...
When kernel is compiled with CONFIG_SLUB_DEBUG=y and
CRYPTO_MANAGER_DISABLE_TESTS=n, during kernel bootup, the kernel
reports error given below. The root cause is that in function
hash_digest_key(), for allocating descriptor, insufficient memory was
being allocated. The required number of descriptor words apart from
input and output pointers are 8 (instead of 6).
=============================================================================
BUG dma-kmalloc-32 (Not tainted): Redzone overwritten
-----------------------------------------------------------------------------
Disabling lock debugging due to kernel taint
INFO: 0xdec5dec0-0xdec5dec3. First byte 0x0 instead of 0xcc
INFO: Allocated in ahash_setkey+0x60/0x594 age=7 cpu=1 pid=1257
__kmalloc+0x154/0x1b4
ahash_setkey+0x60/0x594
test_hash+0x260/0x5a0
alg_test_hash+0x48/0xb0
alg_test+0x84/0x228
cryptomgr_test+0x4c/0x54
kthread+0x98/0x9c
ret_from_kernel_thread+0x64/0x6c
INFO: Slab 0xc0bd0ba0 objects=19 used=2 fp=0xdec5d0d0 flags=0x0081
INFO: Object 0xdec5dea0 @offset=3744 fp=0x5c200014
Bytes b4 dec5de90: 00 00 00 00 00 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a
........ZZZZZZZZ
Object dec5dea0: b0 80 00 0a 84 41 00 0d f0 40 00 00 00 67 3f c0
.....A...@...g?.
Object dec5deb0: 00 00 00 50 2c 14 00 50 f8 40 00 00 1e c5 d0 00
...P,..P.@......
Redzone dec5dec0: 00 00 00 14 ....
Padding dec5df68: 5a 5a 5a 5a 5a 5a 5a 5a
ZZZZZZZZ
Call Trace:
[dec65b60] [c00071b4] show_stack+0x4c/0x168 (unreliable)
[dec65ba0] [c00d4ec8] check_bytes_and_report+0xe4/0x11c
[dec65bd0] [c00d507c] check_object+0x17c/0x23c
[dec65bf0] [c0550a00] free_debug_processing+0xf4/0x294
[dec65c20] [c0550bdc] __slab_free+0x3c/0x294
[dec65c80] [c03f0744] ahash_setkey+0x4e0/0x594
[dec65cd0] [c01ef138] test_hash+0x260/0x5a0
[dec65e50] [c01ef4c0] alg_test_hash+0x48/0xb0
[dec65e70] [c01eecc4] alg_test+0x84/0x228
[dec65ee0] [c01ec640] cryptomgr_test+0x4c/0x54
[dec65ef0] [c005adc0] kthread+0x98/0x9c
[dec65f40] [c000e1ac] ret_from_kernel_thread+0x64/0x6c
FIX dma-kmalloc-32: Restoring 0xdec5dec0-0xdec5dec3=0xcc
Change-Id: I0c7a1048053e811025d1c3b487940f87345c8f5d
Signed-off-by: Vakul Garg <vakul@freescale.com >
CC: <stable@vger.kernel.org > #3.9
Reviewed-by: Geanta Neag Horia Ioan-B05471 <horia.geanta@freescale.com >
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com >
Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2013-07-10 16:47:13 +10:00
Kim Phillips
66b3e8879f
crypto: caam - change key gen functions to return signed int
...
commit 2af8f4a "crypto: caam - coccicheck fixes" added error
return values yet neglected to change the type from unsigned.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2013-04-25 21:01:43 +08:00
Kim Phillips
2af8f4a272
crypto: caam - coccicheck fixes
...
use true/false for bool, fix code alignment, and fix two allocs with
no test.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2012-09-07 04:17:03 +08:00
Kim Phillips
61bb86bba1
crypto: caam - set descriptor sharing type to SERIAL
...
SHARE_WAIT, whilst more optimal for association-less crypto,
has the ability to start thrashing the CCB descriptor/key
caches, given high levels of traffic across multiple security
associations (and thus keys).
Switch to using the SERIAL sharing type, which prefers
the last used CCB for the SA. On a 2-DECO platform
such as the P3041, this can improve performance by
about 3.7%.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2012-08-01 17:47:31 +08:00
Shengzhou Liu
95bcaa3905
crypto: caam - add backward compatible string sec4.0
...
In some device trees of previous version, there were string "fsl,sec4.0".
To be backward compatible with device trees, we first check "fsl,sec-v4.0",
if it fails, then check for "fsl,sec4.0".
Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com >
extended to include new hash and rng code, which was omitted from
the previous version of this patch during a rebase of the SDK
version.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2012-08-01 17:47:31 +08:00
Yuan Kang
643b39b031
crypto: caam - chaining support
...
support chained scatterlists for aead, ablkcipher and ahash.
Signed-off-by: Yuan Kang <Yuan.Kang@freescale.com >
- fix dma unmap leak
- un-unlikely src == dst, due to experience with AF_ALG
Signed-off-by: Kudupudi Ugendreshwar <B38865@freescale.com >
Signed-off-by: Kim Phillips <kim.phillips@freescale.com >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2012-06-27 14:42:05 +08:00
Yuan Kang
b0e09bae37
crypto: caam - unkeyed ahash support
...
caam supports and registers unkeyed sha algorithms and md5.
Signed-off-by: Yuan Kang <Yuan.Kang@freescale.com >
Signed-off-by: Kim Phillips <kim.phillips@freescale.com >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2012-06-27 14:42:05 +08:00
Yuan Kang
045e36780f
crypto: caam - ahash hmac support
...
caam supports ahash hmac with sha algorithms and md5.
Signed-off-by: Yuan Kang <Yuan.Kang@freescale.com >
Signed-off-by: Kim Phillips <kim.phillips@freescale.com >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2012-06-27 14:42:05 +08:00