[PATCH] sky2: kfree_skb_any needed
authorStephen Hemminger <shemminger@osdl.org>
Fri, 1 Dec 2006 22:29:36 +0000 (14:29 -0800)
committerJeff Garzik <jeff@garzik.org>
Sat, 2 Dec 2006 05:22:29 +0000 (00:22 -0500)
It is possible for the sky2 driver NAPI poll routine to be called with
IRQ's disabled if netpoll is trying to make space in the tx queue. This
is an obscure path, but if it happens, the kfree_skb needs to happen
via softirq. Calling kfree_skb with IRQ's disabled is a not allowed.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/sky2.c

index 71722f53f2b45da6693d6a87f55fd40246bbc948..b95b9b7cce000960dd334ca4b84342d7e19984df 100644 (file)
@@ -1453,7 +1453,7 @@ static void sky2_tx_complete(struct sky2_port *sky2, u16 done)
                        if (unlikely(netif_msg_tx_done(sky2)))
                                printk(KERN_DEBUG "%s: tx done %u\n",
                                       dev->name, idx);
-                       dev_kfree_skb(re->skb);
+                       dev_kfree_skb_any(re->skb);
                }
 
                le->opcode = 0; /* paranoia */