alpha: fix alignment problem in csum_ipv6_magic()
authorIvan Kokshaysky <ink@jurassic.park.msu.ru>
Sun, 24 Jun 2007 00:16:35 +0000 (17:16 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Sun, 24 Jun 2007 15:59:11 +0000 (08:59 -0700)
commit58ed2f9c75b719da4f494f24ed2d56d45f5b4959
tree6ecb60cf2d7b18da36fd29f2a6bd03d15a8cfefb
parent653d4876b730fedca8473481863cf700245e3582
alpha: fix alignment problem in csum_ipv6_magic()

Hopefully this fixes http://bugzilla.kernel.org/show_bug.cgi?id=8635

The struct in6_addr passed to csum_ipv6_magic() is 4 byte aligned, so we
can't use the regular 64-bit loads.  Since the cost of handling of 4 byte
and 1 byte aligned 64-bit data is roughly the same, this code can cope with
any src/dst [mis]alignment.

Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Dustin Marquess <jailbird@alcatraz.fdf.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/alpha/lib/csum_ipv6_magic.S
arch/alpha/lib/ev6-csum_ipv6_magic.S