From 4a513559a8086cc68f0434cae773acbc36313709 Mon Sep 17 00:00:00 2001
From: Ben Pfaff <blp@nicira.com>
Date: Tue, 10 Jun 2008 14:41:04 -0700
Subject: [PATCH] Fix "NOHZ: local_softirq_pending 08" message.

Only call netif_rx within an interrupt.
Outside an interrupt, netif_rx_in has to be used.
---
 datapath/dp_dev.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/datapath/dp_dev.c b/datapath/dp_dev.c
index 5ac74d129..48981376c 100644
--- a/datapath/dp_dev.c
+++ b/datapath/dp_dev.c
@@ -29,7 +29,10 @@ int dp_dev_recv(struct net_device *netdev, struct sk_buff *skb)
 	struct dp_dev *dp_dev = dp_dev_priv(netdev);
 	skb->pkt_type = PACKET_HOST;
 	skb->protocol = eth_type_trans(skb, netdev);
-	netif_rx(skb);
+	if (in_interrupt())
+		netif_rx(skb);
+	else
+		netif_rx_ni(skb);
 	netdev->last_rx = jiffies;
 	dp_dev->stats.rx_packets++;
 	dp_dev->stats.rx_bytes += len;
-- 
2.47.0