mac80211: only cancel software-based scans on suspend
Otherwise the hardware scan handler could access an invalid scan request structure. The driver should cancel any pending hardware scans during the suspend process anyway, so also add a warning if the hardware scan is still pending when the device resumes. Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
18145c6934
commit
85f72bc839
|
@ -1186,6 +1186,12 @@ int __ieee80211_suspend(struct ieee80211_hw *hw);
|
|||
|
||||
static inline int __ieee80211_resume(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct ieee80211_local *local = hw_to_local(hw);
|
||||
|
||||
WARN(test_bit(SCAN_HW_SCANNING, &local->scanning),
|
||||
"%s: resume with hardware scan still in progress\n",
|
||||
wiphy_name(hw->wiphy));
|
||||
|
||||
return ieee80211_reconfig(hw_to_local(hw));
|
||||
}
|
||||
#else
|
||||
|
|
|
@ -12,7 +12,8 @@ int __ieee80211_suspend(struct ieee80211_hw *hw)
|
|||
struct ieee80211_sub_if_data *sdata;
|
||||
struct sta_info *sta;
|
||||
|
||||
ieee80211_scan_cancel(local);
|
||||
if (unlikely(test_bit(SCAN_SW_SCANNING, &local->scanning)))
|
||||
ieee80211_scan_cancel(local);
|
||||
|
||||
ieee80211_stop_queues_by_reason(hw,
|
||||
IEEE80211_QUEUE_STOP_REASON_SUSPEND);
|
||||
|
|
Loading…
Reference in New Issue