wl1251: Add vif checking to rssi and beacon loss events
authorYuri Ershov <ext-yuri.ershov@nokia.com>
Wed, 27 Oct 2010 13:24:55 +0000 (17:24 +0400)
committerGrazvydas Ignotas <notasas@gmail.com>
Mon, 17 Jan 2011 17:19:43 +0000 (19:19 +0200)
The chipset is initialized and the vif for the interface are created
separately - there is a small window, when the interface is configured,
that the firmware sends rssi or beacon loss events while the vif is not yet
existing, causing an oops in the mac80211.

Add checking for the vif to the handlers, ignoring the events if there is not
yet a vif.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Yuri Ershov <ext-yuri.ershov@nokia.com>
drivers/net/wireless/wl12xx/wl1251_event.c

index 4929239..eb41dff 100644 (file)
@@ -118,7 +118,7 @@ static int wl1251_event_process(struct wl1251 *wl, struct event_mailbox *mbox)
                        return ret;
        }
 
-       if (vector & SYNCHRONIZATION_TIMEOUT_EVENT_ID) {
+       if (wl->vif && (vector & SYNCHRONIZATION_TIMEOUT_EVENT_ID)) {
                wl1251_debug(DEBUG_EVENT, "SYNCHRONIZATION_TIMEOUT_EVENT");
                /* need to unlock mutex to avoid deadlocking with rtnl */
                mutex_unlock(&wl->mutex);