diff options
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/iface.c | 8 | ||||
-rw-r--r-- | net/mac80211/mlme.c | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index 4839a2d97a3b..090aa5a47182 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c | |||
@@ -449,16 +449,18 @@ static int ieee80211_stop(struct net_device *dev) | |||
449 | case NL80211_IFTYPE_STATION: | 449 | case NL80211_IFTYPE_STATION: |
450 | del_timer_sync(&sdata->u.mgd.chswitch_timer); | 450 | del_timer_sync(&sdata->u.mgd.chswitch_timer); |
451 | del_timer_sync(&sdata->u.mgd.timer); | 451 | del_timer_sync(&sdata->u.mgd.timer); |
452 | del_timer_sync(&sdata->u.mgd.conn_mon_timer); | ||
453 | del_timer_sync(&sdata->u.mgd.bcn_mon_timer); | ||
452 | /* | 454 | /* |
453 | * If the timer fired while we waited for it, it will have | 455 | * If any of the timers fired while we waited for it, it will |
454 | * requeued the work. Now the work will be running again | 456 | * have queued its work. Now the work will be running again |
455 | * but will not rearm the timer again because it checks | 457 | * but will not rearm the timer again because it checks |
456 | * whether the interface is running, which, at this point, | 458 | * whether the interface is running, which, at this point, |
457 | * it no longer is. | 459 | * it no longer is. |
458 | */ | 460 | */ |
459 | cancel_work_sync(&sdata->u.mgd.work); | 461 | cancel_work_sync(&sdata->u.mgd.work); |
460 | cancel_work_sync(&sdata->u.mgd.chswitch_work); | 462 | cancel_work_sync(&sdata->u.mgd.chswitch_work); |
461 | 463 | cancel_work_sync(&sdata->u.mgd.monitor_work); | |
462 | cancel_work_sync(&sdata->u.mgd.beacon_loss_work); | 464 | cancel_work_sync(&sdata->u.mgd.beacon_loss_work); |
463 | 465 | ||
464 | /* | 466 | /* |
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 18dad229344c..e3b3156aca9e 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -1163,6 +1163,9 @@ static void ieee80211_mgd_probe_ap(struct ieee80211_sub_if_data *sdata, | |||
1163 | const u8 *ssid; | 1163 | const u8 *ssid; |
1164 | bool already = false; | 1164 | bool already = false; |
1165 | 1165 | ||
1166 | if (!netif_running(sdata->dev)) | ||
1167 | return; | ||
1168 | |||
1166 | mutex_lock(&ifmgd->mtx); | 1169 | mutex_lock(&ifmgd->mtx); |
1167 | 1170 | ||
1168 | if (!ifmgd->associated) | 1171 | if (!ifmgd->associated) |