mac80211: Restart STA timers only on associated state
authorRajkumar Manoharan <rmanohar@qca.qualcomm.com>
Thu, 7 Jul 2011 18:03:39 +0000 (23:33 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 8 Jul 2011 15:42:25 +0000 (11:42 -0400)
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>
net/mac80211/mlme.c

index 182cda66ebefd954ebfb861b6eb40474a32b4617..b6d9bd5f4d3cf32afa683a55b07b875250eed13f 100644 (file)
@@ -2215,6 +2215,9 @@ void ieee80211_sta_restart(struct ieee80211_sub_if_data *sdata)
 {
        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))