On Thu, Sep 06, 2018 at 12:05:20PM +0800, Jason Wang wrote: > If we're sure not to go native XDP, there's no need for several things > like bh and rcu stuffs. > > Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx> True... > --- > drivers/net/tun.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/tun.c b/drivers/net/tun.c > index f8cdcfa392c3..389aa0727cc6 100644 > --- a/drivers/net/tun.c > +++ b/drivers/net/tun.c > @@ -1675,10 +1675,12 @@ static struct sk_buff *tun_build_skb(struct tun_struct *tun, > * of xdp_prog above, this should be rare and for simplicity > * we do XDP on skb in case the headroom is not enough. > */ > - if (hdr->gso_type || !xdp_prog) > + if (hdr->gso_type || !xdp_prog) { > *skb_xdp = 1; > - else > - *skb_xdp = 0; > + goto build; > + } > + > + *skb_xdp = 0; > > local_bh_disable(); > rcu_read_lock(); > @@ -1724,6 +1726,7 @@ static struct sk_buff *tun_build_skb(struct tun_struct *tun, > rcu_read_unlock(); > local_bh_enable(); > > +build: But this is spaghetti code. Please just put common code into functions and call them, don't goto. > skb = build_skb(buf, buflen); > if (!skb) { > skb = ERR_PTR(-ENOMEM); > -- > 2.17.1 _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization