Commit 0bfbce18 authored by Jouni Malinen's avatar Jouni Malinen Committed by John W. Linville

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: default avatarJouni Malinen <jouni.malinen@atheros.com>
Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 222d0b33
...@@ -76,7 +76,7 @@ extern struct list_head cfg80211_drv_list; ...@@ -76,7 +76,7 @@ extern struct list_head cfg80211_drv_list;
static inline void assert_cfg80211_lock(void) static inline void assert_cfg80211_lock(void)
{ {
BUG_ON(!mutex_is_locked(&cfg80211_mutex)); WARN_ON(!mutex_is_locked(&cfg80211_mutex));
} }
/* /*
......
...@@ -137,8 +137,6 @@ static int nl80211_send_wiphy(struct sk_buff *msg, u32 pid, u32 seq, int flags, ...@@ -137,8 +137,6 @@ static int nl80211_send_wiphy(struct sk_buff *msg, u32 pid, u32 seq, int flags,
int i; int i;
u16 ifmodes = dev->wiphy.interface_modes; u16 ifmodes = dev->wiphy.interface_modes;
assert_cfg80211_lock();
hdr = nl80211hdr_put(msg, pid, seq, flags, NL80211_CMD_NEW_WIPHY); hdr = nl80211hdr_put(msg, pid, seq, flags, NL80211_CMD_NEW_WIPHY);
if (!hdr) if (!hdr)
return -1; return -1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment