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
..
2007-10-17 08:42:52 -07:00
2007-11-14 18:45:44 -08:00
2007-11-02 08:47:06 +01:00
2007-10-29 17:27:50 -04:00
2007-10-16 09:43:09 -07:00
2007-10-19 11:53:42 -07:00
2007-11-05 21:54:41 +00:00
2007-11-14 18:45:38 -08:00
2007-11-14 18:45:39 -08:00
2007-11-05 15:12:31 -08:00
2007-10-20 01:34:40 +02:00
2007-11-10 11:59:49 +01:00
2007-10-23 09:49:31 +02:00
2007-10-19 11:53:41 -07:00
2007-10-19 11:53:41 -07:00
2007-11-14 18:45:36 -08:00
2007-10-20 15:04:06 -07:00
2007-11-14 18:45:44 -08:00
2007-11-14 18:45:46 -08:00
2007-10-17 08:42:57 -07:00
2007-11-14 18:45:44 -08:00
2007-11-14 18:45:36 -08:00
2007-10-23 15:49:54 +10:00