From: Johannes Berg <johannes.berg@xxxxxxxxx> When the queue status changes we need to do a fair bit of work, so ignore no-op changes early. Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx> --- net/mac80211/util.c | 6 ++++++ 1 file changed, 6 insertions(+) --- a/net/mac80211/util.c 2012-03-28 09:33:36.000000000 +0200 +++ b/net/mac80211/util.c 2012-03-28 09:45:03.000000000 +0200 @@ -276,6 +276,9 @@ static void __ieee80211_wake_queue(struc if (WARN_ON(queue >= hw->queues)) return; + if (!test_bit(reason, &local->queue_stop_reasons[queue])) + return; + __clear_bit(reason, &local->queue_stop_reasons[queue]); if (local->queue_stop_reasons[queue] != 0) @@ -323,6 +326,9 @@ static void __ieee80211_stop_queue(struc if (WARN_ON(queue >= hw->queues)) return; + if (test_bit(reason, &local->queue_stop_reasons[queue])) + return; + __set_bit(reason, &local->queue_stop_reasons[queue]); rcu_read_lock(); -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html