wl1251: fix deadlock with ieee80211 beacon filter calls
[pandora-wifi.git] / drivers / net / wireless / wl12xx / wl1251_event.c
index 3c8daa2..0423c79 100644 (file)
@@ -81,9 +81,12 @@ static int wl1251_event_process(struct wl1251 *wl, struct event_mailbox *mbox)
 
        if (vector & SYNCHRONIZATION_TIMEOUT_EVENT_ID && wl->psm) {
                wl1251_debug(DEBUG_EVENT, "SYNCHRONIZATION_TIMEOUT_EVENT");
+               /* need to unlock mutex to avoid deadlocking with rtnl */
+               mutex_unlock(&wl->mutex);
 
                /* indicate to the stack, that beacons have been lost */
                ieee80211_beacon_loss(wl->vif);
+               mutex_lock(&wl->mutex);
        }
 
        if (vector & REGAINED_BSS_EVENT_ID) {