tuntap: enable bh early during processing XDP

This patch move the bh enabling a little bit earlier, this will be
used for factoring out the core XDP logic of tuntap.

Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Jason Wang 2018-09-12 11:17:01 +08:00 committed by David S. Miller
parent 4f23aff871
commit 291aeb2b1d

View file

@ -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: