iwmc3200wifi: replace netif_rx with netif_rx_ni
authorZhu Yi <yi.zhu@intel.com>
Thu, 25 Jun 2009 10:28:30 +0000 (18:28 +0800)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 10 Jul 2009 19:02:25 +0000 (15:02 -0400)
The patch uses netif_rx_ni() over netif_rx() to post buffers to
upper network code because it is always scheduled in a workqueue.
The problem was first observed from a dynamic ticks warning:

    "NOHZ: local_softirq_pending ..."

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwmc3200wifi/rx.c

index 55871da695a93a2c62a827efd9561f66f78fb04d..5d2239f59bc399a15c8f011af91549e836af2117 100644 (file)
@@ -1373,7 +1373,7 @@ static void iwm_rx_process_packet(struct iwm_priv *iwm,
                ndev->stats.rx_packets++;
                ndev->stats.rx_bytes += skb->len;
 
-               if (netif_rx(skb) == NET_RX_DROP) {
+               if (netif_rx_ni(skb) == NET_RX_DROP) {
                        IWM_ERR(iwm, "Packet dropped\n");
                        ndev->stats.rx_dropped++;
                }