From: Vidhya Govindan <vidhya.govindan@xxxxxxxxx> 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@xxxxxxxxx> Reviewed-by: Luciano Coelho <luciano.coelho@xxxxxxxxx> Signed-off-by: Kalle Valo <kalle.valo@xxxxxxxxx> --- drivers/net/wireless/wl12xx/wl1251_event.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/drivers/net/wireless/wl12xx/wl1251_event.c b/drivers/net/wireless/wl12xx/wl1251_event.c index 18c301d..f42121c 100644 --- a/drivers/net/wireless/wl12xx/wl1251_event.c +++ b/drivers/net/wireless/wl12xx/wl1251_event.c @@ -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); } return 0; -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html