alistair23-linux/net/wireless
Johannes Berg ea90e0dc8c nl80211: fix dumpit error path RTNL deadlocks
Sowmini pointed out Dmitry's RTNL deadlock report to me, and it turns out
to be perfectly accurate - there are various error paths that miss unlock
of the RTNL.

To fix those, change the locking a bit to not be conditional in all those
nl80211_prepare_*_dump() functions, but make those require the RTNL to
start with, and fix the buggy error paths. This also let me use sparse
(by appropriately overriding the rtnl_lock/rtnl_unlock functions) to
validate the changes.

Cc: stable@vger.kernel.org
Reported-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2017-03-16 10:30:03 +01:00
..
.gitignore
ap.c
chan.c
core.c cfg80211: fix NAN bands definition 2017-02-09 15:17:30 +01:00
core.h cfg80211: Specify the reason for connect timeout 2017-01-13 09:46:18 +01:00
db.txt
debugfs.c cfg80211 debugfs: Cleanup some checkpatch issues 2017-02-08 09:15:59 +01:00
debugfs.h
ethtool.c
genregdb.awk
ibss.c
Kconfig
lib80211.c
lib80211_crypt_ccmp.c
lib80211_crypt_tkip.c
lib80211_crypt_wep.c
Makefile For 4.11, we seem to have more than in the past few releases: 2017-01-14 12:02:15 -05:00
mesh.c
mlme.c cfg80211: Specify the reason for connect timeout 2017-01-13 09:46:18 +01:00
nl80211.c nl80211: fix dumpit error path RTNL deadlocks 2017-03-16 10:30:03 +01:00
nl80211.h cfg80211: Specify the reason for connect timeout 2017-01-13 09:46:18 +01:00
ocb.c
of.c cfg80211: support ieee80211-freq-limit DT property 2017-01-06 14:01:13 +01:00
radiotap.c
rdev-ops.h
reg.c cfg80211: move function checking range fit to util.c 2017-01-06 13:54:04 +01:00
reg.h
regdb.h
scan.c nl80211: rework {sched_,}scan event related functions 2016-12-16 13:32:31 +01:00
sme.c cfg80211: Specify the reason for connect timeout 2017-01-13 09:46:18 +01:00
sysfs.c cfg80211: sysfs: use wiphy_name() 2017-01-04 08:24:49 +01:00
sysfs.h
trace.c
trace.h cfg80211: fix NAN bands definition 2017-02-09 15:17:30 +01:00
util.c net: adjust skb->truesize in pskb_expand_head() 2017-01-27 12:03:29 -05:00
wext-compat.c
wext-compat.h
wext-core.c wext: uninline stream addition functions 2017-01-13 09:38:42 +01:00
wext-priv.c
wext-proc.c
wext-sme.c cfg80211: wext does not need to set monitor channel in managed mode 2017-01-11 14:10:44 +01:00
wext-spy.c