Re: Fw: kernel BUG at net/core/skbuff.c:1028!

4 messages, 3 authors, 2003-05-09 · open the first message on its own page

Re: Fw: kernel BUG at net/core/skbuff.c:1028!

From: Rusty Russell <hidden>
Date: 2003-05-08 01:08:26

In message [off-list ref] you write:
It has to be from some of the skb linearization changes.
I can't think of any other change we've made that would
make this start to happen.
Yep, culprit is obvious stupid bug.  This indicates a serious lack of
testing on my part 8(

Jens, does this help?
Rusty.

diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.69-bk2/net/ipv4/netfilter/ip_nat_core.c working-2.5.69-bk2-fix-nat/net/ipv4/netfilter/ip_nat_core.c
--- linux-2.5.69-bk2/net/ipv4/netfilter/ip_nat_core.c	2003-05-08 10:31:08.000000000 +1000
+++ working-2.5.69-bk2-fix-nat/net/ipv4/netfilter/ip_nat_core.c	2003-05-08 11:19:04.000000000 +1000
@@ -870,7 +870,8 @@ icmp_reply_translation(struct sk_buff **
 	   adjustment, so make sure the current checksum is correct. */
 	if ((*pskb)->ip_summed != CHECKSUM_UNNECESSARY
 	    && (u16)csum_fold(skb_checksum(*pskb, (*pskb)->nh.iph->ihl*4,
-					   (*pskb)->len, 0)))
+					   (*pskb)->len
+					   - (*pskb)->nh.iph->ihl*4, 0)))
 		return 0;
 
 	/* Must be RELATED */


--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.

Re: Fw: kernel BUG at net/core/skbuff.c:1028!

From: Jens Axboe <hidden>
Date: 2003-05-08 08:21:37

On Thu, May 08 2003, Rusty Russell wrote:
In message [off-list ref] you write:
quoted
It has to be from some of the skb linearization changes.
I can't think of any other change we've made that would
make this start to happen.
Yep, culprit is obvious stupid bug.  This indicates a serious lack of
testing on my part 8(
One would think so, since it doesn't even get to the login :)
Jens, does this help?
[snip]

Nope, it still dies hard. I didn't log the oops this time (box is
headless and I need to move it to do so), but it hung hard before it was
done booting.

Want me to log a new oops?

-- 
Jens Axboe

Re: kernel BUG at net/core/skbuff.c:1028!

From: David S. Miller <hidden>
Date: 2003-05-08 18:15:30

   From: Rusty Russell [off-list ref]
   Date: Thu, 08 May 2003 11:20:27 +1000

   Yep, culprit is obvious stupid bug.  This indicates a serious lack of
   testing on my part 8(
   
   Jens, does this help?

There were two cases of the same bug, you fixed only one
instance :-)

Jens, try this patch instead.
--- net/ipv4/netfilter/ip_nat_core.c.~1~	Thu May  8 11:23:22 2003
+++ net/ipv4/netfilter/ip_nat_core.c	Thu May  8 11:25:56 2003
@@ -861,6 +861,7 @@
 	} *inside;
 	unsigned int i;
 	struct ip_nat_info *info = &conntrack->nat.info;
+	int hdrlen;
 
 	if (!skb_ip_make_writable(pskb,(*pskb)->nh.iph->ihl*4+sizeof(*inside)))
 		return 0;
@@ -868,10 +869,12 @@
 
 	/* We're actually going to mangle it beyond trivial checksum
 	   adjustment, so make sure the current checksum is correct. */
-	if ((*pskb)->ip_summed != CHECKSUM_UNNECESSARY
-	    && (u16)csum_fold(skb_checksum(*pskb, (*pskb)->nh.iph->ihl*4,
-					   (*pskb)->len, 0)))
-		return 0;
+	if ((*pskb)->ip_summed != CHECKSUM_UNNECESSARY) {
+		hdrlen = (*pskb)->nh.iph->ihl * 4;
+		if ((u16)csum_fold(skb_checksum(*pskb, hdrlen,
+						(*pskb)->len - hdrlen, 0)))
+			return 0;
+	}
 
 	/* Must be RELATED */
 	IP_NF_ASSERT((*pskb)->nfct
@@ -948,10 +951,12 @@
 	}
 	READ_UNLOCK(&ip_nat_lock);
 
+	hdrlen = (*pskb)->nh.iph->ihl * 4;
+
 	inside->icmp.checksum = 0;
-	inside->icmp.checksum = csum_fold(skb_checksum(*pskb,
-						       (*pskb)->nh.iph->ihl*4,
-						       (*pskb)->len, 0));
+	inside->icmp.checksum = csum_fold(skb_checksum(*pskb, hdrlen,
+						       (*pskb)->len - hdrlen,
+						       0));
 	return 1;
 
  unlock_fail:

Re: kernel BUG at net/core/skbuff.c:1028!

From: Jens Axboe <hidden>
Date: 2003-05-09 06:47:51

On Thu, May 08 2003, David S. Miller wrote:
   From: Rusty Russell [off-list ref]
   Date: Thu, 08 May 2003 11:20:27 +1000

   Yep, culprit is obvious stupid bug.  This indicates a serious lack of
   testing on my part 8(
   
   Jens, does this help?

There were two cases of the same bug, you fixed only one
instance :-)

Jens, try this patch instead.
I went to apply it to bk-current as of this morning, but I see it's
already in. And bk-current does indeed boot and (appears to :) work,
thanks Dave!

-- 
Jens Axboe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help