aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_event.c21
1 files changed, 3 insertions, 18 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_event.c b/drivers/net/wireless/wl12xx/wl1271_event.c
index 0e0808fa4e32..4fc212a02a64 100644
--- a/drivers/net/wireless/wl12xx/wl1271_event.c
+++ b/drivers/net/wireless/wl12xx/wl1271_event.c
@@ -82,15 +82,8 @@ static int wl1271_event_ps_report(struct wl1271 *wl,
82 true); 82 true);
83 } else { 83 } else {
84 wl1271_error("PSM entry failed, giving up.\n"); 84 wl1271_error("PSM entry failed, giving up.\n");
85 /* FIXME: this may need to be reconsidered. for now it
86 is not possible to indicate to the mac80211
87 afterwards that PSM entry failed. To maximize
88 functionality (receiving data and remaining
89 associated) make sure that we are in sync with the
90 AP in regard of PSM mode. */
91 ret = wl1271_ps_set_mode(wl, STATION_ACTIVE_MODE,
92 false);
93 wl->psm_entry_retry = 0; 85 wl->psm_entry_retry = 0;
86 *beacon_loss = true;
94 } 87 }
95 break; 88 break;
96 case EVENT_ENTER_POWER_SAVE_SUCCESS: 89 case EVENT_ENTER_POWER_SAVE_SUCCESS:
@@ -180,16 +173,8 @@ static int wl1271_event_process(struct wl1271 *wl, struct event_mailbox *mbox)
180 return ret; 173 return ret;
181 } 174 }
182 175
183 if (wl->vif && beacon_loss) { 176 if (wl->vif && beacon_loss)
184 /* Obviously, it's dangerous to release the mutex while 177 ieee80211_connection_loss(wl->vif);
185 we are holding many of the variables in the wl struct.
186 That's why it's done last in the function, and care must
187 be taken that nothing more is done after this function
188 returns. */
189 mutex_unlock(&wl->mutex);
190 ieee80211_beacon_loss(wl->vif);
191 mutex_lock(&wl->mutex);
192 }
193 178
194 return 0; 179 return 0;
195} 180}