From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yao-Po Wang Subject: [PATCH v2] kni: use netif_rx instead of netif_receive_skb in which ocurr deallock on userpace contex Date: Fri, 11 Jul 2014 23:37:24 +0800 Message-ID: <1405093044-3264-1-git-send-email-blue119@gmail.com> To: dev-VfR2kkLFssw@public.gmane.org Return-path: List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" 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 --- 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