mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-02 20:29:20 +00:00
mac80211: handle failed restart/resume better
When the driver fails during HW restart or resume, the whole stack goes into a very confused state with interfaces being up while the hardware is down etc. Address this by shutting down everything; we'll run into a lot of warnings in the process but that's better than having the whole stack get messed up. Reviewed-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
f29f58a9e5
commit
f6837ba8c9
6 changed files with 153 additions and 51 deletions
|
@ -1076,12 +1076,8 @@ void ieee80211_sched_scan_results(struct ieee80211_hw *hw)
|
|||
}
|
||||
EXPORT_SYMBOL(ieee80211_sched_scan_results);
|
||||
|
||||
void ieee80211_sched_scan_stopped_work(struct work_struct *work)
|
||||
void ieee80211_sched_scan_end(struct ieee80211_local *local)
|
||||
{
|
||||
struct ieee80211_local *local =
|
||||
container_of(work, struct ieee80211_local,
|
||||
sched_scan_stopped_work);
|
||||
|
||||
mutex_lock(&local->mtx);
|
||||
|
||||
if (!rcu_access_pointer(local->sched_scan_sdata)) {
|
||||
|
@ -1099,6 +1095,15 @@ void ieee80211_sched_scan_stopped_work(struct work_struct *work)
|
|||
cfg80211_sched_scan_stopped(local->hw.wiphy);
|
||||
}
|
||||
|
||||
void ieee80211_sched_scan_stopped_work(struct work_struct *work)
|
||||
{
|
||||
struct ieee80211_local *local =
|
||||
container_of(work, struct ieee80211_local,
|
||||
sched_scan_stopped_work);
|
||||
|
||||
ieee80211_sched_scan_end(local);
|
||||
}
|
||||
|
||||
void ieee80211_sched_scan_stopped(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct ieee80211_local *local = hw_to_local(hw);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue