netdev
[Top] [All Lists]

Re: Reproducible panics with tulip

To: Alexander Nyberg <alexn@xxxxxxxxx>
Subject: Re: Reproducible panics with tulip
From: Francois Romieu <romieu@xxxxxxxxxxxxx>
Date: Fri, 18 Mar 2005 23:39:39 +0100
Cc: jgarzik@xxxxxxxxx, netdev@xxxxxxxxxxx
In-reply-to: <20050318215229.GA24509@xxxxxxxxxxxxxxxxxxxxxxxxxx>
References: <1111178167.1147.9.camel@xxxxxxxxxxxxxxxxxxxxx> <20050318215229.GA24509@xxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4.1i
Francois Romieu <romieu@xxxxxxxxxxxxx> :
> Alexander Nyberg <alexn@xxxxxxxxx> :
> [...]
> > Warning: kfree_skb on hard IRQ c46c3950
> 
> ... however this one may stick.

/me slaps his head

Nope, it should go away with netconsole: tulip_rx fails an allocation,
netconsole tries to printk in IRQ context and issues:
-> netpoll_send_udp
   -> find_skb
     -> zap_completion_queue
        -> __kfree_skb <- whence the warning.

So, please increase /proc/sys/vm/min_free_kbytes as a start and, at your
option:
- disable netconsole
- apply patch below:


zap_completion_queue can be called in any context through netpoll_send_udp.

Signed-off-by: Francois Romieu <romieu@xxxxxxxxxxxxx>

diff -puN net/core/netpoll.c~netconsole-000 net/core/netpoll.c
--- a/net/core/netpoll.c~netconsole-000 2005-03-18 23:29:28.499641348 +0100
+++ b/net/core/netpoll.c        2005-03-18 23:33:13.856959994 +0100
@@ -142,7 +142,7 @@ static void zap_completion_queue(void)
                while (clist != NULL) {
                        struct sk_buff *skb = clist;
                        clist = clist->next;
-                       __kfree_skb(skb);
+                       dev_kfree_skb_any(skb);
                }
        }
 

_

<Prev in Thread] Current Thread [Next in Thread>