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>
Sun, 31 Oct 2010 20:10:34 +0000 (22:10 +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 8fed56b..15cdf84 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);