On Fri, 02 Dec 2005 20:02:10 -0800 (PST)
"David S. Miller" <[EMAIL PROTECTED]> wrote:

> From: Herbert Xu <[EMAIL PROTECTED]>
> Date: Sat, 03 Dec 2005 09:59:31 +1100
> 
> > Sorry but I disagree.  First of all this is inside a net_ratelimit() so
> > DoS potentials are well, limited :)
> > 
> > More importantly, you should never see this unless there is a hardware
> > fault or a serious software bug.  In either case having the backtrace
> > is quite useful.
> 
> I agree.

The problem I was seeing turned out to be that skb->dev is NULL when
the checksum is being completed in user context. This happens because the
reference to the device is dropped (to allow it to be released when packets
are in the queue).

Because skb->dev was NULL, the netdev_rx_csum_fault was panicing on
deref of dev->name. How about this?

Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]>

--- linux-2.6/net/core/dev.c.orig       2005-11-17 13:30:10.000000000 -0800
+++ linux-2.6/net/core/dev.c    2005-12-08 14:56:02.000000000 -0800
@@ -1113,7 +1113,8 @@
 void netdev_rx_csum_fault(struct net_device *dev)
 {
        if (net_ratelimit()) {
-               printk(KERN_ERR "%s: hw csum failure.\n", dev->name);
+               printk(KERN_ERR "%s: hw csum failure.\n", 
+                       dev ? dev->name : "<unknown>");
                dump_stack();
        }
 }
-
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