summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2012-11-27 08:44:48 +0200
committerLuciano Coelho <coelho@ti.com>2012-12-04 17:05:52 +0200
commit5d979f35179c365a6455302bd5a1fa0063a4065e (patch)
tree6249e1f416cc6c97008c484eebb07bef2ab25905 /drivers/net
parent2718bf409937655f9b0bbc174faee3ac2ecf1062 (diff)
downloadop-kernel-dev-5d979f35179c365a6455302bd5a1fa0063a4065e.zip
op-kernel-dev-5d979f35179c365a6455302bd5a1fa0063a4065e.tar.gz
wlcore: clear roc_vif on iface removal
When removing an interface currently performing a ROC operation, clear the current ROC state. This is useful especially during recovery and keeps mac80211 in sync to our state. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ti/wlcore/main.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
index 1b42cb3..3339216 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -2414,6 +2414,11 @@ static void __wl1271_op_remove_interface(struct wl1271 *wl,
wl->sched_vif = NULL;
}
+ if (wl->roc_vif == vif) {
+ wl->roc_vif = NULL;
+ ieee80211_remain_on_channel_expired(wl->hw);
+ }
+
if (!test_bit(WL1271_FLAG_RECOVERY_IN_PROGRESS, &wl->flags)) {
/* disable active roles */
ret = wl1271_ps_elp_wakeup(wl);
OpenPOWER on IntegriCloud