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>
                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++;
                }