diff options
author | Johannes Berg <johannes.berg@intel.com> | 2021-06-08 11:32:29 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2021-06-09 16:09:20 +0200 |
commit | 65bec836da8394b1d56bdec2c478dcac21cf12a4 (patch) | |
tree | 7175cbbb3ee70a08c331def51a35b5cb001637cd /net | |
parent | 43076c1e074359f11c85d7d1b85ede1bbb8ee6b9 (diff) |
cfg80211: shut down interfaces on failed resume
If resume fails, we should shut down all interfaces as the
hardware is probably dead. This was/is already done now in
mac80211, but we need to change that due to locking issues,
so move it here and do it without the wiphy lock held.
Cc: stable@vger.kernel.org
Fixes: 2fe8ef106238 ("cfg80211: change netdev registration/unregistration semantics")
Link: https://lore.kernel.org/r/20210608113226.d564ca69de7c.I2e3c3e5d410b72a4f63bade4fb075df041b3d92f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/wireless/sysfs.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/wireless/sysfs.c b/net/wireless/sysfs.c index 9b959e3b09c6..0c3f05c9be27 100644 --- a/net/wireless/sysfs.c +++ b/net/wireless/sysfs.c @@ -133,6 +133,10 @@ static int wiphy_resume(struct device *dev) if (rdev->wiphy.registered && rdev->ops->resume) ret = rdev_resume(rdev); wiphy_unlock(&rdev->wiphy); + + if (ret) + cfg80211_shutdown_all_interfaces(&rdev->wiphy); + rtnl_unlock(); return ret; |