projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
40d18ff
)
mac80211: fix monitor interface suspend crash regression
author
Stanislaw Gruszka
<
[email protected]
>
Tue, 23 Jul 2013 11:56:50 +0000
(13:56 +0200)
committer
Johannes Berg
<
[email protected]
>
Tue, 23 Jul 2013 12:02:08 +0000
(14:02 +0200)
My commit:
commit
12e7f517029dad819c45eca9ca01fdb9ba57616b
Author: Stanislaw Gruszka <
[email protected]
>
Date: Thu Feb 28 10:55:26 2013 +0100
mac80211: cleanup generic suspend/resume procedures
removed check for deleting MONITOR and AP_VLAN when suspend. That can
cause a crash (i.e. in iwlagn_mac_remove_interface()) since we remove
interface in the driver that we did not add before.
Reference:
http://marc.info/?l=linux-kernel&m=
137391815113860
&w=2
Bisected-by: Ortwin Glück <
[email protected]
>
Reported-and-tested-by: Ortwin Glück <
[email protected]
>
Cc:
[email protected]
# 3.10
Signed-off-by: Stanislaw Gruszka <
[email protected]
>
Signed-off-by: Johannes Berg <
[email protected]
>
net/mac80211/pm.c
patch
|
blob
|
history
diff --git
a/net/mac80211/pm.c
b/net/mac80211/pm.c
index 7fc5d0d8149a53f2a20377499841657dd9a97c7c..340126204343a063902bb205675cc14bea743a4c 100644
(file)
--- a/
net/mac80211/pm.c
+++ b/
net/mac80211/pm.c
@@
-99,10
+99,13
@@
int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
}
mutex_unlock(&local->sta_mtx);
- /* remove all interfaces */
+ /* remove all interfaces
that were created in the driver
*/
list_for_each_entry(sdata, &local->interfaces, list) {
- if (!ieee80211_sdata_running(sdata))
+ if (!ieee80211_sdata_running(sdata) ||
+ sdata->vif.type == NL80211_IFTYPE_AP_VLAN ||
+ sdata->vif.type == NL80211_IFTYPE_MONITOR)
continue;
+
drv_remove_interface(local, sdata);
}