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 <[email protected]>
---
 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

_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to