X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=include%2Fnet%2Fpkt_sched.h;h=75b5b9333fc75cc3b4289c80870b8a77ed6f0892;hb=6f84be84b4cde72fa2a2f0d10ac284a31e923200;hp=b94d1ad92c4d36c2f2cd6ff973db72ceb60a8345;hpb=e7de369050534025b33aab1033358bf47a577e4d;p=powerpc.git diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h index b94d1ad92c..75b5b9333f 100644 --- a/include/net/pkt_sched.h +++ b/include/net/pkt_sched.h @@ -218,12 +218,13 @@ 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 int qdisc_restart(struct net_device *dev); +extern void __qdisc_run(struct net_device *dev); static inline void qdisc_run(struct net_device *dev) { - while (!netif_queue_stopped(dev) && qdisc_restart(dev) < 0) - /* NOTHING */; + if (!netif_queue_stopped(dev) && + !test_and_set_bit(__LINK_STATE_QDISC_RUNNING, &dev->state)) + __qdisc_run(dev); } extern int tc_classify(struct sk_buff *skb, struct tcf_proto *tp,