diff options
author | Johannes Berg <johannes.berg@intel.com> | 2014-04-30 08:19:04 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-05-09 06:21:34 -0400 |
commit | f6837ba8c98afcf28ec25f6863a8597274aeefd6 (patch) | |
tree | 25e045970c4161b73457e42ded044dd908e81c6c /include/net/cfg80211.h | |
parent | f29f58a9e53252a50eaea0ece59f1af5fad56b5f (diff) |
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>
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r-- | include/net/cfg80211.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 28f6f1a5b445..5c7169b0ac57 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -4771,6 +4771,20 @@ int cfg80211_iter_combinations(struct wiphy *wiphy, | |||
4771 | void cfg80211_stop_iface(struct wiphy *wiphy, struct wireless_dev *wdev, | 4771 | void cfg80211_stop_iface(struct wiphy *wiphy, struct wireless_dev *wdev, |
4772 | gfp_t gfp); | 4772 | gfp_t gfp); |
4773 | 4773 | ||
4774 | /** | ||
4775 | * cfg80211_shutdown_all_interfaces - shut down all interfaces for a wiphy | ||
4776 | * @wiphy: the wiphy to shut down | ||
4777 | * | ||
4778 | * This function shuts down all interfaces belonging to this wiphy by | ||
4779 | * calling dev_close() (and treating non-netdev interfaces as needed). | ||
4780 | * It shouldn't really be used unless there are some fatal device errors | ||
4781 | * that really can't be recovered in any other way. | ||
4782 | * | ||
4783 | * Callers must hold the RTNL and be able to deal with callbacks into | ||
4784 | * the driver while the function is running. | ||
4785 | */ | ||
4786 | void cfg80211_shutdown_all_interfaces(struct wiphy *wiphy); | ||
4787 | |||
4774 | /* Logging, debugging and troubleshooting/diagnostic helpers. */ | 4788 | /* Logging, debugging and troubleshooting/diagnostic helpers. */ |
4775 | 4789 | ||
4776 | /* wiphy_printk helpers, similar to dev_printk */ | 4790 | /* wiphy_printk helpers, similar to dev_printk */ |