Skip to content

Commit

Permalink
wl1271: Disconnect if PSM entry fails
Browse files Browse the repository at this point in the history
If PSM entry fails despite of retries, assume that the AP has been lost,
and indicate connection loss to the mac80211. This is much safer than
remaining in active mode.

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>
  • Loading branch information
Juuso Oikarinen authored and John W. Linville committed Mar 31, 2010
1 parent c2b2d99 commit d60772f
Showing 1 changed file with 3 additions and 18 deletions.
21 changes: 3 additions & 18 deletions drivers/net/wireless/wl12xx/wl1271_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,15 +82,8 @@ static int wl1271_event_ps_report(struct wl1271 *wl,
true);
} else {
wl1271_error("PSM entry failed, giving up.\n");
/* FIXME: this may need to be reconsidered. for now it
is not possible to indicate to the mac80211
afterwards that PSM entry failed. To maximize
functionality (receiving data and remaining
associated) make sure that we are in sync with the
AP in regard of PSM mode. */
ret = wl1271_ps_set_mode(wl, STATION_ACTIVE_MODE,
false);
wl->psm_entry_retry = 0;
*beacon_loss = true;
}
break;
case EVENT_ENTER_POWER_SAVE_SUCCESS:
Expand Down Expand Up @@ -180,16 +173,8 @@ static int wl1271_event_process(struct wl1271 *wl, struct event_mailbox *mbox)
return ret;
}

if (wl->vif && beacon_loss) {
/* Obviously, it's dangerous to release the mutex while
we are holding many of the variables in the wl struct.
That's why it's done last in the function, and care must
be taken that nothing more is done after this function
returns. */
mutex_unlock(&wl->mutex);
ieee80211_beacon_loss(wl->vif);
mutex_lock(&wl->mutex);
}
if (wl->vif && beacon_loss)
ieee80211_connection_loss(wl->vif);

return 0;
}
Expand Down

0 comments on commit d60772f

Please sign in to comment.