mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 21:54:11 +08:00
mac80211: cleanup suspend/resume on managed mode
Remove not used any longer suspend/resume code. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
12e7f51702
commit
9b7d72c104
@ -401,7 +401,6 @@ struct ieee80211_if_managed {
|
|||||||
|
|
||||||
u16 aid;
|
u16 aid;
|
||||||
|
|
||||||
unsigned long timers_running; /* used for quiesce/restart */
|
|
||||||
bool powersave; /* powersave requested for this iface */
|
bool powersave; /* powersave requested for this iface */
|
||||||
bool broken_ap; /* AP is broken -- turn off powersave */
|
bool broken_ap; /* AP is broken -- turn off powersave */
|
||||||
u8 dtim_period;
|
u8 dtim_period;
|
||||||
@ -1277,8 +1276,6 @@ void
|
|||||||
ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata,
|
ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata,
|
||||||
const struct ieee80211_channel_sw_ie *sw_elem,
|
const struct ieee80211_channel_sw_ie *sw_elem,
|
||||||
struct ieee80211_bss *bss, u64 timestamp);
|
struct ieee80211_bss *bss, u64 timestamp);
|
||||||
void ieee80211_sta_quiesce(struct ieee80211_sub_if_data *sdata);
|
|
||||||
void ieee80211_sta_restart(struct ieee80211_sub_if_data *sdata);
|
|
||||||
void ieee80211_sta_work(struct ieee80211_sub_if_data *sdata);
|
void ieee80211_sta_work(struct ieee80211_sub_if_data *sdata);
|
||||||
void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata,
|
void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata,
|
||||||
struct sk_buff *skb);
|
struct sk_buff *skb);
|
||||||
|
@ -87,9 +87,6 @@ MODULE_PARM_DESC(probe_wait_ms,
|
|||||||
*/
|
*/
|
||||||
#define IEEE80211_SIGNAL_AVE_MIN_COUNT 4
|
#define IEEE80211_SIGNAL_AVE_MIN_COUNT 4
|
||||||
|
|
||||||
#define TMR_RUNNING_TIMER 0
|
|
||||||
#define TMR_RUNNING_CHANSW 1
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* All cfg80211 functions have to be called outside a locked
|
* All cfg80211 functions have to be called outside a locked
|
||||||
* section so that they can acquire a lock themselves... This
|
* section so that they can acquire a lock themselves... This
|
||||||
@ -1039,14 +1036,8 @@ static void ieee80211_chswitch_timer(unsigned long data)
|
|||||||
{
|
{
|
||||||
struct ieee80211_sub_if_data *sdata =
|
struct ieee80211_sub_if_data *sdata =
|
||||||
(struct ieee80211_sub_if_data *) data;
|
(struct ieee80211_sub_if_data *) data;
|
||||||
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
|
||||||
|
|
||||||
if (sdata->local->quiescing) {
|
ieee80211_queue_work(&sdata->local->hw, &sdata->u.mgd.chswitch_work);
|
||||||
set_bit(TMR_RUNNING_CHANSW, &ifmgd->timers_running);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ieee80211_queue_work(&sdata->local->hw, &ifmgd->chswitch_work);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -1833,8 +1824,6 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
|
|||||||
del_timer_sync(&sdata->u.mgd.timer);
|
del_timer_sync(&sdata->u.mgd.timer);
|
||||||
del_timer_sync(&sdata->u.mgd.chswitch_timer);
|
del_timer_sync(&sdata->u.mgd.chswitch_timer);
|
||||||
|
|
||||||
sdata->u.mgd.timers_running = 0;
|
|
||||||
|
|
||||||
sdata->vif.bss_conf.dtim_period = 0;
|
sdata->vif.bss_conf.dtim_period = 0;
|
||||||
|
|
||||||
ifmgd->flags = 0;
|
ifmgd->flags = 0;
|
||||||
@ -3143,15 +3132,8 @@ static void ieee80211_sta_timer(unsigned long data)
|
|||||||
{
|
{
|
||||||
struct ieee80211_sub_if_data *sdata =
|
struct ieee80211_sub_if_data *sdata =
|
||||||
(struct ieee80211_sub_if_data *) data;
|
(struct ieee80211_sub_if_data *) data;
|
||||||
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
|
||||||
struct ieee80211_local *local = sdata->local;
|
|
||||||
|
|
||||||
if (local->quiescing) {
|
ieee80211_queue_work(&sdata->local->hw, &sdata->work);
|
||||||
set_bit(TMR_RUNNING_TIMER, &ifmgd->timers_running);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ieee80211_queue_work(&local->hw, &sdata->work);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ieee80211_sta_connection_lost(struct ieee80211_sub_if_data *sdata,
|
static void ieee80211_sta_connection_lost(struct ieee80211_sub_if_data *sdata,
|
||||||
@ -3503,72 +3485,6 @@ static void ieee80211_restart_sta_timer(struct ieee80211_sub_if_data *sdata)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
|
||||||
void ieee80211_sta_quiesce(struct ieee80211_sub_if_data *sdata)
|
|
||||||
{
|
|
||||||
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Stop timers before deleting work items, as timers
|
|
||||||
* could race and re-add the work-items. They will be
|
|
||||||
* re-established on connection.
|
|
||||||
*/
|
|
||||||
del_timer_sync(&ifmgd->conn_mon_timer);
|
|
||||||
del_timer_sync(&ifmgd->bcn_mon_timer);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* we need to use atomic bitops for the running bits
|
|
||||||
* only because both timers might fire at the same
|
|
||||||
* time -- the code here is properly synchronised.
|
|
||||||
*/
|
|
||||||
|
|
||||||
cancel_work_sync(&ifmgd->request_smps_work);
|
|
||||||
|
|
||||||
cancel_work_sync(&ifmgd->monitor_work);
|
|
||||||
cancel_work_sync(&ifmgd->beacon_connection_loss_work);
|
|
||||||
cancel_work_sync(&ifmgd->csa_connection_drop_work);
|
|
||||||
if (del_timer_sync(&ifmgd->timer))
|
|
||||||
set_bit(TMR_RUNNING_TIMER, &ifmgd->timers_running);
|
|
||||||
|
|
||||||
if (del_timer_sync(&ifmgd->chswitch_timer))
|
|
||||||
set_bit(TMR_RUNNING_CHANSW, &ifmgd->timers_running);
|
|
||||||
cancel_work_sync(&ifmgd->chswitch_work);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ieee80211_sta_restart(struct ieee80211_sub_if_data *sdata)
|
|
||||||
{
|
|
||||||
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
|
||||||
|
|
||||||
mutex_lock(&ifmgd->mtx);
|
|
||||||
if (!ifmgd->associated) {
|
|
||||||
mutex_unlock(&ifmgd->mtx);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sdata->flags & IEEE80211_SDATA_DISCONNECT_RESUME) {
|
|
||||||
sdata->flags &= ~IEEE80211_SDATA_DISCONNECT_RESUME;
|
|
||||||
mlme_dbg(sdata, "driver requested disconnect after resume\n");
|
|
||||||
ieee80211_sta_connection_lost(sdata,
|
|
||||||
ifmgd->associated->bssid,
|
|
||||||
WLAN_REASON_UNSPECIFIED,
|
|
||||||
true);
|
|
||||||
mutex_unlock(&ifmgd->mtx);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
mutex_unlock(&ifmgd->mtx);
|
|
||||||
|
|
||||||
if (test_and_clear_bit(TMR_RUNNING_TIMER, &ifmgd->timers_running))
|
|
||||||
add_timer(&ifmgd->timer);
|
|
||||||
if (test_and_clear_bit(TMR_RUNNING_CHANSW, &ifmgd->timers_running))
|
|
||||||
add_timer(&ifmgd->chswitch_timer);
|
|
||||||
ieee80211_sta_reset_beacon_monitor(sdata);
|
|
||||||
|
|
||||||
mutex_lock(&sdata->local->mtx);
|
|
||||||
ieee80211_restart_sta_timer(sdata);
|
|
||||||
mutex_unlock(&sdata->local->mtx);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* interface setup */
|
/* interface setup */
|
||||||
void ieee80211_sta_setup_sdata(struct ieee80211_sub_if_data *sdata)
|
void ieee80211_sta_setup_sdata(struct ieee80211_sub_if_data *sdata)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user