Signed-off-by: Helmut Schaa <helmut.schaa@xxxxxxxxxxxxxx> --- I'm currently writing some code for rt2800 that requires the driver to stop sending to a specific station for a short period of time (until all AMPDUs are finished to work around a hw issue that affects rate sampling with minstrel_ht). I decided to give ieee80211_sta_block_awake a try, however, the machine sometimes locked up while running some performance tests but due to a hw watchdog I wasn't able to get any sort of backtrace :( So, while doing some review of the ieee80211_sta_block_awake I came across this and wondered if softirqs should be disabled when delivering the buffered frames in sta_unblock. Using this patch I cannot reproduce the lockup anymore. So, is there any special reason this single code path in sta_unblock doesn't disable softirqs? Thanks, Helmut net/mac80211/sta_info.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c index 24d321f..5b4ab21 100644 --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c @@ -238,9 +238,11 @@ static void sta_unblock(struct work_struct *wk) if (sta->dead) return; - if (!test_sta_flag(sta, WLAN_STA_PS_STA)) + if (!test_sta_flag(sta, WLAN_STA_PS_STA)) { + local_bh_disable(); ieee80211_sta_ps_deliver_wakeup(sta); - else if (test_and_clear_sta_flag(sta, WLAN_STA_PSPOLL)) { + local_bh_enable(); + } else if (test_and_clear_sta_flag(sta, WLAN_STA_PSPOLL)) { clear_sta_flag(sta, WLAN_STA_PS_DRIVER); local_bh_disable(); -- 1.7.7 -- 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