wlcore: resume() only if sta is associated
authorEliad Peller <eliad@wizery.com>
Wed, 1 Aug 2012 15:44:22 +0000 (18:44 +0300)
committerLuciano Coelho <luca@coelho.fi>
Thu, 27 Sep 2012 09:13:51 +0000 (12:13 +0300)
mac80211's resume() callback might get called even if
the sta is not associated (but only up). The
resume sequence in this case results in configuring
the wake-up conditions of a non-started role, which
causes fw assertion.

Fix it by bailing out if the STA is not connected
(like we do on suspend()).

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <luca@coelho.fi>
drivers/net/wireless/ti/wlcore/main.c

index a797ce7201b214265987c57b08422b274de14a15..ae2b0fd7e558ed43a137dd3f9b08aa864ff1f531 100644 (file)
@@ -1672,6 +1672,9 @@ static void wl1271_configure_resume(struct wl1271 *wl,
        if ((!is_ap) && (!is_sta))
                return;
 
+       if (is_sta && !test_bit(WLVIF_FLAG_STA_ASSOCIATED, &wlvif->flags))
+               return;
+
        ret = wl1271_ps_elp_wakeup(wl);
        if (ret < 0)
                return;