Re: possible bug x86 2.4.2 SMP in IP receive stack

kuznet@ms2.inr.ac.ru
Tue, 27 Feb 2001 22:41:10 +0300 (MSK)


Hello!

> Feb 23 12:42:30 rcc2 kernel: Warning: kfree_skb passed an skb still on a list (from c01f58dc).

BTW, that's didactic example of bug which results in similar behaviour.

Alexey

> From: andrewm@uow.EDU.AU (Andrew Morton)
> Subject: Re: Failed assertion
> Date: 27 Feb 2001 04:15:01 +0300
>
> "David S. Miller" wrote:
> >
> > Ralf Baechle writes:
> > > No backtrace, the machine did continue as you'd suspect after a print.
> > > The machine is a dual CPU Origin 200 with an IOC3 NIC.
> >
> > What is your current kernel based upon, some older 2.4.x or
> > even 2.3.x variant? Or is it sync'd to current?
>
> Could this be a driver problem? This code:
>
> netif_rx(skb);
>
> ip->rx_skbs[rx_entry] = NULL; /* Poison */
>
> new_skb = ioc3_alloc_skb(RX_BUF_ALLOC_SIZE, GFP_ATOMIC);
> if (!new_skb) {
> /* Ouch, drop packet and just recycle packet
> to keep the ring filled. */
> ip->stats.rx_dropped++;
> new_skb = skb;
> goto next;
> }
>
> looks scary. We've passed an skb to the network stack,
> but we can continue to make it available to the device
> driver at the same time.
>
> I'd suggest a printk() in there, plus perhaps do the
> alloc_skb _before_ the netif_rx(). Don't pass the skb
> to the stack if it is to be recycled.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/