Re: [PATCH] crypto: fix unaligned access in khazad module

From: Herbert Xu
Date: Thu Mar 09 2006 - 17:08:03 EST


On Thu, Mar 09, 2006 at 12:26:38PM +0900, Atsushi Nemoto wrote:
>
> - K2 = be64_to_cpu(key[0]);
> - K1 = be64_to_cpu(key[1]);
> + K2 = be64_to_cpu(get_unaligned(&key[0]));
> + K1 = be64_to_cpu(get_unaligned(&key[1]));

How about doing two 32-bit reads:

const __be32 *key = (const __be32 *)in_key;

K2 = ((u64)be32_to_cpu(key[0])) << 32 + be32_to_cpu(key[1]);
K1 = ((u64)be32_to_cpu(key[2])) << 32 + be32_to_cpu(key[3]);

Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/