sky2 vs iptables
Subsystems (2)
Hi,
There's a strange sky2 bug on the Gentoo bugzilla:
http://bugs.gentoo.org/show_bug.cgi?id=136508
sky2 seems to work OK, but breaks as soon as the iptables ruleset is loaded. Nothing can be pinged, etc.
Can someone try and reproduce this? The iptables rule script has been uploaded here:
http://bugs.gentoo.org/attachment.cgi?id=95694&action=view
The very last command in that file is the one which produces an error and stops everything working:
iptables: Unknown error 18446744073709551615
Apparently a sky2 null deref has also been seen at this point, although I don't have further details on that.
Thanks!
Daniel
Quoted 20 lines · On Tue, 05 Sep 2006 21:36:24 -0400 Daniel Drake <[email protected]> wrote:
Hi,
There's a strange sky2 bug on the Gentoo bugzilla:
http://bugs.gentoo.org/show_bug.cgi?id=136508sky2 seems to work OK, but breaks as soon as the iptables ruleset is loaded. Nothing can be pinged, etc.
Can someone try and reproduce this? The iptables rule script has been uploaded here:
http://bugs.gentoo.org/attachment.cgi?id=95694&action=viewThe very last command in that file is the one which produces an error and stops everything working:
iptables: Unknown error 18446744073709551615Apparently a sky2 null deref has also been seen at this point, although I don't have further details on that.
Quoted 6 lines
Thanks!
Daniel
-
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
It might be an artifact of the way sky2 was allocating receive buffers. Bridge-netfilter was assuming header space in the buffer, and would corrupt other memory, maybe iptables is assuming as well. This makes sky2 use dev_alloc_skb that reserves space.
-----------------------
Subject: sky2: use dev_alloc_skb for receive buffers
Several code paths assume an additional 16 bytes of header padding on the receive path. Use dev_alloc_skb to get that padding.
drivers/net/sky2.c +3 -3
@@ -949,14 +949,14 @@ static void sky2_vlan_rx_kill_vid(struct/* * It appears the hardware has a bug in the FIFO logic that * cause it to hang if the FIFO gets overrun and the receive buffer -* is not aligned. ALso alloc_skb() won't align properly if slab +* is not aligned. Also dev_alloc_skb() won't align properly if slab * debugging is enabled. */ static inline struct sk_buff *sky2_alloc_skb (unsigned int size,gfp_t gfp_mask) {struct sk_buff *skb; - skb =alloc_skb (size +RX_SKB_ALIGN , gfp_mask); + skb =__dev_alloc_skb (size +RX_SKB_ALIGN , gfp_mask);if (likely (skb)) {unsigned long p = (unsigned long ) skb->data;skb_reserve (skb,ALIGN (p,RX_SKB_ALIGN ) - p);
@@ -1855,7 +1855,7 @@ static struct sk_buff *sky2_receive(stru goto oversize;if (length < copybreak) { - skb =alloc_skb (length +2 ,GFP_ATOMIC ); + skb =dev_alloc_skb (length +2 );if (!skb) goto resubmit;
Quoted 14 lines · Stephen Hemminger
Quoted 12 lines · On Tue, 05 Sep 2006 21:36:24 -0400 Daniel Drake <[email protected]> wrote:
There's a strange sky2 bug on the Gentoo bugzilla:
http://bugs.gentoo.org/show_bug.cgi?id=136508sky2 seems to work OK, but breaks as soon as the iptables ruleset is loaded. Nothing can be pinged, etc.
Can someone try and reproduce this? The iptables rule script has been uploaded here:
http://bugs.gentoo.org/attachment.cgi?id=95694&action=viewThe very last command in that file is the one which produces an error and stops everything working:
iptables: Unknown error 18446744073709551615
Quoted 8 lines
Quoted 1 line
Apparently a sky2 null deref has also been seen at this point, although I don't have further details on that.
It might be an artifact of the way sky2 was allocating receive buffers. Bridge-netfilter was assuming header space in the buffer, and would corrupt other memory, maybe iptables is assuming as well. This makes sky2 use
dev_alloc_skbthat reserves space.
-----------------------
Subject: sky2: usedev_alloc_skbfor receive buffers
Unfortunately the problem still exists with this patch. Any other ideas?
Daniel
Quoted 28 lines · On Sat, 16 Sep 2006 23:01:46 -0400 Daniel Drake <[email protected]> wrote:
Quoted 20 lines · Stephen Hemminger
Quoted 10 lines · On Tue, 05 Sep 2006 21:36:24 -0400 Daniel Drake <[email protected]> wrote:
There's a strange sky2 bug on the Gentoo bugzilla:
http://bugs.gentoo.org/show_bug.cgi?id=136508sky2 seems to work OK, but breaks as soon as the iptables ruleset is loaded. Nothing can be pinged, etc.
Can someone try and reproduce this? The iptables rule script has been uploaded here:
http://bugs.gentoo.org/attachment.cgi?id=95694&action=viewQuoted 7 lines
The very last command in that file is the one which produces an error and stops everything working:
iptables: Unknown error 18446744073709551615Apparently a sky2 null deref has also been seen at this point, although I don't have further details on that.
Quoted 6 lines
It might be an artifact of the way sky2 was allocating receive buffers. Bridge-netfilter was assuming header space in the buffer, and would corrupt other memory, maybe iptables is assuming as well. This makes sky2 use
dev_alloc_skbthat reserves space.
-----------------------
Subject: sky2: usedev_alloc_skbfor receive buffers
Quoted 3 lines
Unfortunately the problem still exists with this patch. Any other ideas?
Daniel
I tried the script with 2.6.18 and saw no problem.
Of course, my configuration was probably different and I wasn't
running Gentoo. Eth0 was a sky2 device, and eth1 was a skge.
Quoted 4 lines · Stephen Hemminger
I tried the script with 2.6.18 and saw no problem.
Of course, my configuration was probably different and I wasn't
running Gentoo. Eth0 was a sky2 device, and eth1 was a skge.
This turned out to be a netfilter configuration issue. sky2+iptables works fine when the kernel is compiled correctly. Sorry for the noise, although the netfilter error messages weren't exactly clear that certain modules were missing!
Daniel