linux/drivers/crypto
Herbert Xu 490fe3f05b [CRYPTO] padlock: Fix alignment fault in aes_crypt_copy
The previous patch fixed spurious read faults from occuring by copying
the data if we happen to have a single block at the end of a page.  It
appears that gcc cannot guarantee 16-byte alignment in the kernel with
__attribute__.  The following report from Torben Viets shows a buffer
that's only 8-byte aligned:

> eneral protection fault: 0000 [#1]
> Modules linked in: xt_TCPMSS xt_tcpmss iptable_mangle ipt_MASQUERADE
> xt_tcpudp xt_mark xt_state iptable_nat nf_nat nf_conntrack_ipv4
> iptable_filter ip_tables x_tables pppoe pppox af_packet ppp_generic slhc
> aes_i586
> CPU:    0
> EIP:    0060:[<c035b828>]    Not tainted VLI
> EFLAGS: 00010292   (2.6.23.12 #7)
> EIP is at aes_crypt_copy+0x28/0x40
> eax: f7639ff0   ebx: f6c24050   ecx: 00000001   edx: f6c24030
> esi: f7e89dc8   edi: f7639ff0   ebp: 00010000   esp: f7e89dc8

Since the hardware must have 16-byte alignment, the following patch fixes
this by open coding the alignment adjustment.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2008-01-11 08:09:35 +11:00
..
geode-aes.c [CRYPTO] geode: Fix not inplace encryption 2007-11-11 19:03:48 +08:00
geode-aes.h [CRYPTO] geode: Fix in-place operations and set key 2007-05-24 21:23:24 +10:00
Kconfig [CRYPTO] drivers/Kconfig: Remove "default m"s 2007-10-10 16:55:37 -07:00
Makefile [CRYPTO] padlock: Remove pointless padlock module 2007-05-02 22:08:26 +10:00
padlock-aes.c [CRYPTO] padlock: Fix alignment fault in aes_crypt_copy 2008-01-11 08:09:35 +11:00
padlock-sha.c [CRYPTO] users: Fix up scatterlist conversion errors 2007-10-27 00:52:07 -07:00
padlock.h [CRYPTO] padlock: Added block cipher versions of CBC/ECB 2006-09-21 11:44:35 +10:00