[dpdk-dev] [PATCH v2] kni: use netif_rx instead of netif_receive_skb in which ocurr deallock on userpace contex

Yao-Po Wang blue119 at gmail.com
Fri Jul 11 17:37:24 CEST 2014


Per netif_receive_skb function description, it may only be called from
interrupt contex, but KNI is run on kthread that like as user-space
contex. It may occur deallock, if netif_receive_skb called from kthread,
so it should be repleaced by netif_rx or adding local_bh_disable/enable
around netif_receive_skb.

Signed-off-by: Yao-Po Wang <blue119 at gmail.com>
---
 lib/librte_eal/linuxapp/kni/kni_net.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_eal/linuxapp/kni/kni_net.c b/lib/librte_eal/linuxapp/kni/kni_net.c
index d3c0190..28cc5ab 100644
--- a/lib/librte_eal/linuxapp/kni/kni_net.c
+++ b/lib/librte_eal/linuxapp/kni/kni_net.c
@@ -179,7 +179,7 @@ kni_net_rx_normal(struct kni_dev *kni)
 			skb->ip_summed = CHECKSUM_UNNECESSARY;
 
 			/* Call netif interface */
-			netif_receive_skb(skb);
+			netif_rx(skb);
 
 			/* Update statistics */
 			kni->stats.rx_bytes += len;
-- 
2.0.0



More information about the dev mailing list