diff --git a/[refs] b/[refs] index ba7ef8102277..5bdeda889291 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e3b802ba885b54f4050164c3cfd9e0ba9c73173a +refs/heads/master: e8a83e10d7dfe5d0841062780769b30f65417e15 diff --git a/trunk/net/core/dev.c b/trunk/net/core/dev.c index 60c51f765887..e719ed29310f 100644 --- a/trunk/net/core/dev.c +++ b/trunk/net/core/dev.c @@ -1991,8 +1991,13 @@ static void net_tx_action(struct softirq_action *h) spin_unlock(root_lock); } else { if (!test_bit(__QDISC_STATE_DEACTIVATED, - &q->state)) + &q->state)) { __netif_reschedule(q); + } else { + smp_mb__before_clear_bit(); + clear_bit(__QDISC_STATE_SCHED, + &q->state); + } } } }