From: Harald Welte <[EMAIL PROTECTED]>
Date: Sat, 30 Sep 2006 22:20:40 +0200

> Kernel unaligned access at TPC[10022cf0] ipv6_rcv+0xb8/0x320 [ipv6]
> Kernel unaligned access at TPC[10023800] __ipv6_addr_type+0x8/0x140 [ipv6]
> Kernel unaligned access at TPC[1002fd64] fib6_lookup_1+0x2c/0x120 [ipv6]
> Kernel unaligned access at TPC[10093878] tcp_error+0x40/0x2c0 [nf_conntrack]
> Kernel unaligned access at TPC[1004ce54] nf_ip6_checksum+0x13c/0x1c0 [ipv6]
> Kernel unaligned access at TPC[1004ce58] nf_ip6_checksum+0x140/0x1c0 [ipv6]
> Kernel unaligned access at TPC[1004ce60] nf_ip6_checksum+0x148/0x1c0 [ipv6]

I think for all of these cases the IPv6 header is not 4-byte
aligned in the SKB.  The first case is simply ipv6_hdr->version
which GCC turns into a load of the first 4 byte word of the
headers, then a mask+compare.  And this is fine becasue due
to the "struct in6_addr", gcc may assume that the ipv6 header
struct is at least 4 bytes aligned since in6_addr contains
an array of u32[]'s.

What kind of input path is this packet coming from?  Is it
using some kind of encapsulation?  It's odd for it to not
be 4 byte aligned, you would get the same kind of unaligned
accesses for an ipv4 header if it were misaligned like this.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to