Quellcode durchsuchen

libertas cs/sdio: fix 'NOHZ: local_softirq_pending 08' message

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@hevs.ch>
Acked-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Holger Schurig vor 17 Jahren
Ursprung
Commit
ae3e0fcf90
1 geänderte Dateien mit 4 neuen und 1 gelöschten Zeilen
  1. 4 1
      drivers/net/wireless/libertas/rx.c

+ 4 - 1
drivers/net/wireless/libertas/rx.c

@@ -247,7 +247,10 @@ int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *skb)
 	priv->stats.rx_packets++;
 
 	skb->protocol = eth_type_trans(skb, dev);
-	netif_rx(skb);
+	if (in_interrupt())
+		netif_rx(skb);
+	else
+		netif_rx_ni(skb);
 
 	ret = 0;
 done: