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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <D5C1322C3E673F459512FB59E0DDC32902D424F4@orsmsx414.amr.corp.intel.com>
Date:	Fri, 11 May 2007 11:13:06 -0700
From:	"Waskiewicz Jr, Peter P" <peter.p.waskiewicz.jr@...el.com>
To:	<hadi@...erus.ca>
Cc:	"Herbert Xu" <herbert@...dor.apana.org.au>,
	"David Miller" <davem@...emloft.net>, <netdev@...r.kernel.org>
Subject: RE: [RFC] make qdisc_restart more readable

> On Fri, 2007-11-05 at 08:56 -0700, Waskiewicz Jr, Peter P wrote:
> 
> > In qdisc_restart(), you removed any check for if
> > (!netif_queue_stopped(dev)) before calling 
> dev_hard_start_xmit().  If 
> > the underlying queue is stopped and you send the skb, 
> you'll generate 
> > a requeue.  Is there a reason it was removed?
> > 
> 
> No - its a bug ;->
> Thanks for staring at this Peter. I will fix it.
> 
> cheers,
> jamal

After thinking about this a bit more: even if the queue is stopped,
you'd end up requeueing anyways.  Plus, you'd need to re-acquire
dev->queue_lock (which is what happens today).  I think the best way
overall would be to check the queue state before you physically dequeue
(whether it's in qdisc_restart() or in the qdisc's ->dequeue()).  That
way you still hold dev->queue_lock in case the queue is stopped, and
haven't yet pulled an skb causing a requeue event.

Just $0.02 on Friday.

Thx,

-PJ Waskiewicz
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ