lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20190829105209.0c27c3d4d1c4a2cfb622d464@suse.de>
Date:   Thu, 29 Aug 2019 10:52:09 +0200
From:   Thomas Bogendoerfer <tbogendoerfer@...e.de>
To:     Jakub Kicinski <jakub.kicinski@...ronome.com>
Cc:     Ralf Baechle <ralf@...ux-mips.org>,
        Paul Burton <paul.burton@...s.com>,
        James Hogan <jhogan@...nel.org>,
        "David S. Miller" <davem@...emloft.net>,
        linux-mips@...r.kernel.org, linux-kernel@...r.kernel.org,
        netdev@...r.kernel.org
Subject: Re: [PATCH net-next 06/15] net: sgi: ioc3-eth: get rid of
 ioc3_clean_rx_ring()

On Wed, 28 Aug 2019 16:02:46 -0700
Jakub Kicinski <jakub.kicinski@...ronome.com> wrote:

> On Wed, 28 Aug 2019 16:03:05 +0200, Thomas Bogendoerfer wrote:
> > Clean rx ring is just called once after a new ring is allocated, which
> > is per definition clean. So there is not need for this function.
> > 
> > Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@...e.de>
> > ---
> >  drivers/net/ethernet/sgi/ioc3-eth.c | 21 ---------------------
> >  1 file changed, 21 deletions(-)
> > 
> > diff --git a/drivers/net/ethernet/sgi/ioc3-eth.c b/drivers/net/ethernet/sgi/ioc3-eth.c
> > index 6ca560d4ab79..39631e067b71 100644
> > --- a/drivers/net/ethernet/sgi/ioc3-eth.c
> > +++ b/drivers/net/ethernet/sgi/ioc3-eth.c
> > @@ -761,26 +761,6 @@ static void ioc3_mii_start(struct ioc3_private *ip)
> >  	add_timer(&ip->ioc3_timer);
> >  }
> >  
> > -static inline void ioc3_clean_rx_ring(struct ioc3_private *ip)
> > -{
> > -	struct ioc3_erxbuf *rxb;
> > -	struct sk_buff *skb;
> > -	int i;
> > -
> > -	for (i = ip->rx_ci; i & 15; i++) {
> > -		ip->rx_skbs[ip->rx_pi] = ip->rx_skbs[ip->rx_ci];
> > -		ip->rxr[ip->rx_pi++] = ip->rxr[ip->rx_ci++];
> > -	}
> > -	ip->rx_pi &= RX_RING_MASK;
> > -	ip->rx_ci &= RX_RING_MASK;
> > -
> > -	for (i = ip->rx_ci; i != ip->rx_pi; i = (i + 1) & RX_RING_MASK) {
> > -		skb = ip->rx_skbs[i];
> > -		rxb = (struct ioc3_erxbuf *)(skb->data - RX_OFFSET);
> > -		rxb->w0 = 0;
> 
> There's gotta be some purpose to setting this w0 word to zero no?
> ioc3_rx() uses that to see if the descriptor is done, and dutifully
> clears it after..

you are right. I thought this is already done in alloc_rx_bufs, but it isn't.
I'll add it there and put it into this patch. /me wonders why testing
didn't show this...

Thomas.

-- 
SUSE Software Solutions Germany GmbH
HRB 247165 (AG München)
Geschäftsführer: Felix Imendörffer

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ