Skip to contentSkip to conversation

ppc: fix sungem NAPI

PATCH In review Benjamin Herrenschmidt 2 participants 2 messages Sep 10, 2004 Network drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ppc: fix sungem NAPI

Hi !

The recent sungem NAPI change introduced a bug: dev_kfree_skb() is called within the spinlock, thus triggers all sort of WARN_ON's later on down the stack.

This patch changes it to dev_kfree_skb_any(), I hope that is fine as we aren't really in interrupt, are we ? (I don't know in what context NAPI polling occurs, is it a timer IRQ ?)

Ben.

===== drivers/net/sungem.c 1.59 vs edited =====

drivers/net/sungem.c +1 -1
@@ -651,7 +651,7 @@
 		}
 
 		gp->net_stats.tx_packets++;
-		dev_kfree_skb(skb);
+		dev_kfree_skb_any(skb);
 	}
 	gp->tx_old = entry;
 
maintainer
#1 lore raw
Quoted 7 lines · On Fri, 10 Sep 2004 13:49:17 +1000 Benjamin Herrenschmidt…

The recent sungem NAPI change introduced a bug: dev_kfree_skb() is called within the spinlock, thus triggers all sort of WARN_ON's later on down the stack.

This patch changes it to dev_kfree_skb_any(), I hope that is fine as we aren't really in interrupt, are we ? (I don't know in what context NAPI polling occurs, is it a timer IRQ ?)

NAPI polling occurs from softirq context.

Thanks for making me aware of this. This fix is fine for now, but it may be possible to simplify it and I'll look into that.