crypto: aesni-intel - fix unaligned cbc decrypt for x86-32
commit9bef1b2492b95dc848cbde1ad021efc355a0b350
authorMathias Krause <minipli@googlemail.com>
Tue, 29 May 2012 23:43:08 +0000 (30 01:43 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 17 Jun 2012 18:23:10 +0000 (17 11:23 -0700)
treefd2c210016835f7194b631f4c6cde4e89249c6ed
parent238607e0800c37b64868e6ec2323fc0e25cd7363
crypto: aesni-intel - fix unaligned cbc decrypt for x86-32

commit 7c8d51848a88aafdb68f42b6b650c83485ea2f84 upstream.

The 32 bit variant of cbc(aes) decrypt is using instructions requiring
128 bit aligned memory locations but fails to ensure this constraint in
the code. Fix this by loading the data into intermediate registers with
load unaligned instructions.

This fixes reported general protection faults related to aesni.

References: https://bugzilla.kernel.org/show_bug.cgi?id=43223
Reported-by: Daniel <garkein@mailueberfall.de>
Signed-off-by: Mathias Krause <minipli@googlemail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/crypto/aesni-intel_asm.S