|
@@ -1926,6 +1926,8 @@ void ieee80211_sta_quiesce(struct ieee80211_sub_if_data *sdata)
|
|
* time -- the code here is properly synchronised.
|
|
* time -- the code here is properly synchronised.
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
+ cancel_work_sync(&ifmgd->request_smps_work);
|
|
|
|
+
|
|
cancel_work_sync(&ifmgd->beacon_connection_loss_work);
|
|
cancel_work_sync(&ifmgd->beacon_connection_loss_work);
|
|
if (del_timer_sync(&ifmgd->timer))
|
|
if (del_timer_sync(&ifmgd->timer))
|
|
set_bit(TMR_RUNNING_TIMER, &ifmgd->timers_running);
|
|
set_bit(TMR_RUNNING_TIMER, &ifmgd->timers_running);
|
|
@@ -1961,6 +1963,7 @@ void ieee80211_sta_setup_sdata(struct ieee80211_sub_if_data *sdata)
|
|
INIT_WORK(&ifmgd->chswitch_work, ieee80211_chswitch_work);
|
|
INIT_WORK(&ifmgd->chswitch_work, ieee80211_chswitch_work);
|
|
INIT_WORK(&ifmgd->beacon_connection_loss_work,
|
|
INIT_WORK(&ifmgd->beacon_connection_loss_work,
|
|
ieee80211_beacon_connection_loss_work);
|
|
ieee80211_beacon_connection_loss_work);
|
|
|
|
+ INIT_WORK(&ifmgd->request_smps_work, ieee80211_request_smps_work);
|
|
setup_timer(&ifmgd->timer, ieee80211_sta_timer,
|
|
setup_timer(&ifmgd->timer, ieee80211_sta_timer,
|
|
(unsigned long) sdata);
|
|
(unsigned long) sdata);
|
|
setup_timer(&ifmgd->bcn_mon_timer, ieee80211_sta_bcn_mon_timer,
|
|
setup_timer(&ifmgd->bcn_mon_timer, ieee80211_sta_bcn_mon_timer,
|