|
@@ -2047,7 +2047,7 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q,
|
|
|
kfree_skb(skb);
|
|
|
rc = NET_XMIT_DROP;
|
|
|
} else if ((q->flags & TCQ_F_CAN_BYPASS) && !qdisc_qlen(q) &&
|
|
|
- !test_and_set_bit(__QDISC_STATE_RUNNING, &q->state)) {
|
|
|
+ qdisc_run_begin(q)) {
|
|
|
/*
|
|
|
* This is a work-conserving queue; there are no old skbs
|
|
|
* waiting to be sent out; and the qdisc is not running -
|
|
@@ -2059,7 +2059,7 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q,
|
|
|
if (sch_direct_xmit(skb, q, dev, txq, root_lock))
|
|
|
__qdisc_run(q);
|
|
|
else
|
|
|
- clear_bit(__QDISC_STATE_RUNNING, &q->state);
|
|
|
+ qdisc_run_end(q);
|
|
|
|
|
|
rc = NET_XMIT_SUCCESS;
|
|
|
} else {
|