diff options
author | Rajkumar Manoharan <rmanohar@qca.qualcomm.com> | 2011-07-07 14:03:39 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-07-08 11:42:25 -0400 |
commit | 676b58c27475a9defccc025fea1cbd2b141ee539 (patch) | |
tree | dc6c9099a7cdcf0dc4b04fe2456060e8db2f8ec9 /net | |
parent | 565dfefbe196206bc1e40bf92e7c5d53e9d9f706 (diff) |
mac80211: Restart STA timers only on associated state
A panic was observed when the device is failed to resume properly,
and there are no running interfaces. ieee80211_reconfig tries
to restart STA timers on unassociated state.
Cc: stable@kernel.org
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/mlme.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 182cda66ebef..b6d9bd5f4d3c 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -2215,6 +2215,9 @@ void ieee80211_sta_restart(struct ieee80211_sub_if_data *sdata) | |||
2215 | { | 2215 | { |
2216 | struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; | 2216 | struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; |
2217 | 2217 | ||
2218 | if (!ifmgd->associated) | ||
2219 | return; | ||
2220 | |||
2218 | if (test_and_clear_bit(TMR_RUNNING_TIMER, &ifmgd->timers_running)) | 2221 | if (test_and_clear_bit(TMR_RUNNING_TIMER, &ifmgd->timers_running)) |
2219 | add_timer(&ifmgd->timer); | 2222 | add_timer(&ifmgd->timer); |
2220 | if (test_and_clear_bit(TMR_RUNNING_CHANSW, &ifmgd->timers_running)) | 2223 | if (test_and_clear_bit(TMR_RUNNING_CHANSW, &ifmgd->timers_running)) |