[NET_SCHED]: Reread dev->qdisc for NETDEV_TX_OK
authorHerbert Xu <herbert@gondor.apana.org.au>
Thu, 10 May 2007 21:11:16 +0000 (14:11 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Fri, 11 May 2007 06:47:41 +0000 (23:47 -0700)
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 <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_generic.c

index 07200bf..816d311 100644 (file)
@@ -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) {