[PATCH] [31/50] mac80211: Restart STA timers only on associated state

Andi Kleen
2011-07-28T23:49:37Z

From: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>

[ upstream commit 676b58c27475a9defccc025fea1cbd2b141ee539 ]

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>
Signed-off-by: Andi Kleen <ak@linux.intel.com>

Index: linux-2.6.35.y/net/mac80211/mlme.c
===================================================================
--- linux-2.6.35.y.orig/net/mac80211/mlme.c
+++ linux-2.6.35.y/net/mac80211/mlme.c
@@ -1995,6 +1995,9 @@ void ieee80211_sta_restart(struct ieee80
{
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;

+ if (!ifmgd->associated)
+ return;
+
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))