From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: Re: [PATCH net-next] tun: avoid unnecessary READ_ONCE in tun_net_xmit Date: Wed, 6 Dec 2017 11:39:53 +0800 Message-ID: <582e2ea4-5f1d-d076-61b4-2b56b8c60099@redhat.com> References: <20171206031117.86588-1-willemdebruijn.kernel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Cc: davem@davemloft.net, Willem de Bruijn To: Willem de Bruijn , netdev@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:37766 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754442AbdLFDj6 (ORCPT ); Tue, 5 Dec 2017 22:39:58 -0500 In-Reply-To: <20171206031117.86588-1-willemdebruijn.kernel@gmail.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 2017年12月06日 11:11, Willem de Bruijn wrote: > From: Willem de Bruijn > > The statement no longer serves a purpose. > > Commit fa35864e0bb7 ("tuntap: Fix for a race in accessing numqueues") > added the ACCESS_ONCE to avoid a race condition with skb_queue_len. > > Commit 436accebb530 ("tuntap: remove unnecessary sk_receive_queue > length check during xmit") removed the affected skb_queue_len check. > > Commit 96f84061620c ("tun: add eBPF based queue selection method") > split the function, reading the field a second time in the callee. > The temp variable is now only read once, so just remove it. > > Signed-off-by: Willem de Bruijn > --- > drivers/net/tun.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/net/tun.c b/drivers/net/tun.c > index 787cc35ef89b..c2ad8f3858d1 100644 > --- a/drivers/net/tun.c > +++ b/drivers/net/tun.c > @@ -990,14 +990,12 @@ static netdev_tx_t tun_net_xmit(struct sk_buff *skb, struct net_device *dev) > struct tun_struct *tun = netdev_priv(dev); > int txq = skb->queue_mapping; > struct tun_file *tfile; > - u32 numqueues = 0; > > rcu_read_lock(); > tfile = rcu_dereference(tun->tfiles[txq]); > - numqueues = READ_ONCE(tun->numqueues); > > /* Drop packet if interface is not attached */ > - if (txq >= numqueues) > + if (txq >= tun->numqueues) > goto drop; > > if (!rcu_dereference(tun->steering_prog)) Acked-by: Jason Wang Thanks