On Thu, May 10, 2007 at 04:55:34AM -0700, David Miller wrote: > > > [NET_SCHED]: Rationalise return value of qdisc_restart > > Fair enough, patch applied :-)
Sorry, reading Thomas's patch made me realise that I've just added that bug all over again. [NET_SCHED]: Reread dev->qdisc for NETDEV_TX_OK Now that we return the queue length after NETDEV_TX_OK we better make sure that we have the right queue. Otherwise we can cause a stall after a really quick dev_deactive/dev_activate. Signed-off-by: Herbert Xu <[EMAIL PROTECTED]> Chers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index 3480e81..5f04b06 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c @@ -132,6 +132,7 @@ static inline int qdisc_restart(struct net_device *dev) netif_tx_unlock(dev); } spin_lock(&dev->queue_lock); + q = dev->qdisc; goto out; } if (ret == NETDEV_TX_LOCKED && nolock) { - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html