X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=include%2Fnet%2Fpkt_sched.h;h=75b5b9333fc75cc3b4289c80870b8a77ed6f0892;hb=d2ae5b5f6afd3c4caaf82444102a4372135cb994;hp=b94d1ad92c4d36c2f2cd6ff973db72ceb60a8345;hpb=9fdb62af92c741addbea15545f214a6e89460865;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,