[PATCH] libertas cs/sdio: fix 'NOHZ: local_softirq_pending 08' message

Marc Pignat marc.pignat at hevs.ch
Wed Jan 16 07:34:13 EST 2008

netif_rx should be called only from interrupt context. if_cs and if_sdio receive
packets from other contexts, and thus should call netif_rx_ni.

Signed-off-by: Marc Pignat <marc.pignat at hevs.ch>


Here is the solution for the 'NOHZ: local_softirq_pending 08' message seen when
using the libertas compact flash or sdio libertas drivers.

This patch is against 2.6.24-rc8 and has only been tested with the sdio
interface, please test it with usb.



--- a/drivers/net/wireless/libertas/rx.c
+++ b/drivers/net/wireless/libertas/rx.c
@@ -147,7 +147,10 @@
 			skb->protocol = eth_type_trans(skb, priv->dev);
 	skb->ip_summed = CHECKSUM_UNNECESSARY;
-	netif_rx(skb);
+	if (in_interrupt())
+		netif_rx(skb);
+	else
+		netif_rx_ni(skb);

More information about the libertas-dev mailing list