From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: [PATCH net-next 03/11] tuntap: enable bh early during processing XDP Date: Thu, 6 Sep 2018 12:05:18 +0800 Message-ID: <20180906040526.22518-4-jasowang@redhat.com> References: <20180906040526.22518-1-jasowang@redhat.com> Cc: kvm@vger.kernel.org, virtualization@lists.linux-foundation.org, mst@redhat.com, jasowang@redhat.com To: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Return-path: Received: from mx3-rdu2.redhat.com ([66.187.233.73]:36690 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725781AbeIFIjM (ORCPT ); Thu, 6 Sep 2018 04:39:12 -0400 In-Reply-To: <20180906040526.22518-1-jasowang@redhat.com> Sender: netdev-owner@vger.kernel.org List-ID: This patch move the bh enabling a little bit earlier, this will be used for factoring out the core XDP logic of tuntap. Signed-off-by: Jason Wang --- drivers/net/tun.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/net/tun.c b/drivers/net/tun.c index d3677a544b56..372caf7d67d9 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -1726,22 +1726,18 @@ static struct sk_buff *tun_build_skb(struct tun_struct *tun, goto err_xdp; } } + rcu_read_unlock(); + local_bh_enable(); skb = build_skb(buf, buflen); - if (!skb) { - rcu_read_unlock(); - local_bh_enable(); + if (!skb) return ERR_PTR(-ENOMEM); - } skb_reserve(skb, pad - delta); skb_put(skb, len); get_page(alloc_frag->page); alloc_frag->offset += buflen; - rcu_read_unlock(); - local_bh_enable(); - return skb; err_redirect: -- 2.17.1