diff options
author | Stanislaw Gruszka <stf_xl@wp.pl> | 2013-07-28 13:17:22 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-08-11 15:38:22 -0700 |
commit | 0088acabd29e8060552237f4f256b476678c68c2 (patch) | |
tree | c11f95ef34ed08b1655a24419b2dc2cdd118fc90 /kernel/events | |
parent | d8605bdee3179b21d4467dc5077ffe39ae5a175c (diff) | |
download | kernel_samsung_smdk4412-0088acabd29e8060552237f4f256b476678c68c2.tar.gz kernel_samsung_smdk4412-0088acabd29e8060552237f4f256b476678c68c2.tar.bz2 kernel_samsung_smdk4412-0088acabd29e8060552237f4f256b476678c68c2.zip |
rt2x00: fix stop queue
commit e2288b66fe7ff0288382b2af671b4da558b44472 upstream.
Since we clear QUEUE_STARTED in rt2x00queue_stop_queue(), following
call to rt2x00queue_pause_queue() reduce to noop, i.e we do not
stop queue in mac80211.
To fix that introduce rt2x00queue_pause_queue_nocheck() function,
which will stop queue in mac80211 directly.
Note that rt2x00_start_queue() explicitly set QUEUE_PAUSED bit.
Note also that reordering operations i.e. first call to
rt2x00queue_pause_queue() and then clear QUEUE_STARTED bit, will race
with rt2x00queue_unpause_queue(), so calling ieee80211_stop_queue()
directly is the only available solution to fix the problem without
major rework.
Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'kernel/events')
0 files changed, 0 insertions, 0 deletions