Lockdep shows that there is a deadlock when calling ieee80211_rssi_changed()
under wl->mutex. Fix it by releasing mutex before calling mac80211 functions.
This patch is based on Work-In-Progress patch sent by Kalle Valo.
Signed-off-by: Vidhya Govindan <vidhya.govindan@nokia.com>
Signed-off-by: Yuri Ershov <ext-yuri.ershov@nokia.com>
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) {