wl1271: Prevent PSM-entry retry loop if PSM cancelled
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>
Mon, 23 Nov 2009 21:22:13 +0000 (23:22 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Sat, 28 Nov 2009 20:04:26 +0000 (15:04 -0500)
Prevent endless PSM-entry retry loops, if PSM has already been cancelled while
PSM entry was attempted.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/wl12xx/wl1271_event.c

index e135d89..d13fdd9 100644 (file)
@@ -78,12 +78,16 @@ static int wl1271_event_ps_report(struct wl1271 *wl,
 
        switch (mbox->ps_status) {
        case EVENT_ENTER_POWER_SAVE_FAIL:
+               if (!wl->psm) {
+                       wl->psm_entry_retry = 0;
+                       break;
+               }
+
                if (wl->psm_entry_retry < wl->conf.conn.psm_entry_retries) {
                        wl->psm_entry_retry++;
-                       wl1271_error("PSM entry failed, retrying %d\n",
-                                    wl->psm_entry_retry);
                        ret = wl1271_ps_set_mode(wl, STATION_POWER_SAVE_MODE);
                } else {
+                       wl1271_error("PSM entry failed, giving up.\n");
                        wl->psm_entry_retry = 0;
                        *beacon_loss = true;
                }