From 0bfbce18b9c11201ebf1cfbc0deeab7bdbfe32a5 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Tue, 24 Feb 2009 16:49:58 +0200 Subject: [PATCH] nl80211: Avoid AP mode BUG_ON hang with invalid lock assert "cfg80211: add assert_cfg80211_lock() to ensure proper protection" added assert_cfg80211_lock() calls into various places. At least one of them, nl80211_send_wiphy(), should not have been there. That triggers the BUG_ON in assert_cfg80211_lock() and pretty much kills the kernel whenever someone runs hostapd.. Remove that call and make assert_cfg80211_lock() use WARN_ON instead of BUG_ON to be a bit more friendly to users. Signed-off-by: Jouni Malinen Acked-by: Johannes Berg Signed-off-by: John W. Linville --- net/wireless/core.h | 2 +- net/wireless/nl80211.c | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/net/wireless/core.h b/net/wireless/core.h index cd8e6e3ef116..f6c53f5807f4 100644 --- a/net/wireless/core.h +++ b/net/wireless/core.h @@ -76,7 +76,7 @@ extern struct list_head cfg80211_drv_list; static inline void assert_cfg80211_lock(void) { - BUG_ON(!mutex_is_locked(&cfg80211_mutex)); + WARN_ON(!mutex_is_locked(&cfg80211_mutex)); } /* diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 97f69bed3fe2..531bb67cf502 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -137,8 +137,6 @@ static int nl80211_send_wiphy(struct sk_buff *msg, u32 pid, u32 seq, int flags, int i; u16 ifmodes = dev->wiphy.interface_modes; - assert_cfg80211_lock(); - hdr = nl80211hdr_put(msg, pid, seq, flags, NL80211_CMD_NEW_WIPHY); if (!hdr) return -1; -- 2.30.2