linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / include / net / pkt_sched.h
index 75b5b93..b94d1ad 100644 (file)
@@ -218,13 +218,12 @@ extern struct qdisc_rate_table *qdisc_get_rtab(struct tc_ratespec *r,
                struct rtattr *tab);
 extern void qdisc_put_rtab(struct qdisc_rate_table *tab);
 
-extern void __qdisc_run(struct net_device *dev);
+extern int qdisc_restart(struct net_device *dev);
 
 static inline void qdisc_run(struct net_device *dev)
 {
-       if (!netif_queue_stopped(dev) &&
-           !test_and_set_bit(__LINK_STATE_QDISC_RUNNING, &dev->state))
-               __qdisc_run(dev);
+       while (!netif_queue_stopped(dev) && qdisc_restart(dev) < 0)
+               /* NOTHING */;
 }
 
 extern int tc_classify(struct sk_buff *skb, struct tcf_proto *tp,