android_kernel_oneplus_msm8998/drivers/crypto
Herbert Xu 3ef726179c crypto: padlock-aes - Fix Nano workaround data corruption
commit 46d8c4b28652d35dc6cfb5adf7f54e102fc04384 upstream.

This was detected by the self-test thanks to Ard's chunking patch.

I finally got around to testing this out on my ancient Via box.  It
turns out that the workaround got the assembly wrong and we end up
doing count + initial cycles of the loop instead of just count.

This obviously causes corruption, either by overwriting the source
that is yet to be processed, or writing over the end of the buffer.

On CPUs that don't require the workaround only ECB is affected.
On Nano CPUs both ECB and CBC are affected.

This patch fixes it by doing the subtraction prior to the assembly.

Fixes: a76c1c23d0 ("crypto: padlock-aes - work around Nano CPU...")
Cc: <stable@vger.kernel.org>
Reported-by: Jamie Heilman <jamie@audible.transient.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-08-06 16:24:42 +02:00
..
amcc crypto: crypto4xx - fix crypto4xx_build_pdr, crypto4xx_build_sdr leak 2018-07-22 14:25:52 +02:00
caam crypto: caam - fix endless loop when DECO acquire fails 2018-02-16 20:09:45 +01:00
ccp crypto: ccp - Fix AES XTS error for request sizes above 4096 2016-06-24 10:18:19 -07:00
marvell crypto: marvell/cesa - forward devm_ioremap_resource() error code 2016-04-12 09:08:46 -07:00
nx crypto: nx-842 - Mask XERS0 bit in return value 2016-09-15 08:27:49 +02:00
qat crypto: qat - fix aes-xts key sizes 2016-09-07 08:32:44 +02:00
qce crypto: qce - dma_map_sg can handle chained SG 2015-10-08 21:42:19 +08:00
sunxi-ss crypto: sunxi-ss - Add MODULE_ALIAS to sun4i-ss 2018-05-30 07:49:16 +02:00
ux500 crypto: ux500 - memmove the right size 2016-07-11 09:31:12 -07:00
vmx crypto: vmx - Remove overly verbose printk from AES init routines 2018-06-16 09:54:27 +02:00
atmel-aes-regs.h
atmel-aes.c crypto: atmel - fix checks of error code returned by devm_ioremap_resource() 2016-04-12 09:08:46 -07:00
atmel-sha-regs.h
atmel-sha.c crypto: atmel - only treat EBUSY as transient if backlog 2017-07-21 07:44:58 +02:00
atmel-tdes-regs.h
atmel-tdes.c crypto: atmel - fix checks of error code returned by devm_ioremap_resource() 2016-04-12 09:08:46 -07:00
bfin_crc.c crypto: bfin_crc - replace sg_count by sg_nents 2015-09-21 23:05:53 +08:00
bfin_crc.h
geode-aes.c
geode-aes.h
hifn_795x.c hifn_795x: stop including <asm-generic/kmap_types.h> 2015-10-15 00:21:09 +02:00
img-hash.c crypto: img-hash - fix spelling mistake in dev_err error message 2015-08-04 17:41:31 +08:00
ixp4xx_crypto.c crypto: aead - Remove CRYPTO_ALG_AEAD_NEW flag 2015-08-17 16:53:53 +08:00
Kconfig crypto: mxs-dcp - mxs-dcp is an stmp device 2015-10-14 22:23:37 +08:00
Makefile crypto: sunxi-ss - Add Allwinner Security System crypto accelerator 2015-07-20 15:54:08 +08:00
mv_cesa.c
mv_cesa.h
mxs-dcp.c
n2_asm.S
n2_core.c crypto: n2 - cure use after free 2018-01-10 09:27:08 +01:00
n2_core.h
omap-aes.c
omap-des.c
omap-sham.c crypto/omap-sham: remove an open coded access to ->page_link 2015-08-17 08:12:57 -06:00
padlock-aes.c crypto: padlock-aes - Fix Nano workaround data corruption 2018-08-06 16:24:42 +02:00
padlock-sha.c x86/cpufeature: Remove unused and seldomly used cpu_has_xx macros 2018-06-16 09:54:24 +02:00
picoxcell_crypto.c crypto: picoxcell - Fix module autoload for OF platform driver 2015-09-21 22:00:36 +08:00
picoxcell_crypto_regs.h
s5p-sss.c crypto: s5p-sss - Fix kernel Oops in AES-ECB mode 2018-02-25 11:03:55 +01:00
sahara.c crypto: sahara - set array of const as const 2015-10-15 21:05:18 +08:00
talitos.c crypto: talitos - fix sha224 2017-10-05 09:41:45 +02:00
talitos.h crypto: talitos - Prevent panic in probe error path 2015-08-10 23:19:05 +08:00