android_kernel_samsung_univ.../net/wireless
Johannes Berg 74c8dd066c nl80211: fix dumpit error path RTNL deadlocks
commit ea90e0dc8cecba6359b481e24d9c37160f6f524f upstream.

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.

Reported-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-03-30 09:35:18 +02:00
..
.gitignore
ap.c
chan.c
core.c cfg80211/wext: fix message ordering 2016-03-16 08:42:59 -07:00
core.h cfg80211/mac80211: fix BSS leaks when abandoning assoc attempts 2017-01-09 08:07:42 +01:00
db.txt
debugfs.c
debugfs.h
ethtool.c
genregdb.awk
ibss.c
Kconfig cfg80211: reg: make CRDA support optional 2015-10-16 09:15:39 +02:00
lib80211_crypt_ccmp.c
lib80211_crypt_tkip.c
lib80211_crypt_wep.c
lib80211.c
Makefile
mesh.c
mlme.c cfg80211/mac80211: fix BSS leaks when abandoning assoc attempts 2017-01-09 08:07:42 +01:00
nl80211.c nl80211: fix dumpit error path RTNL deadlocks 2017-03-30 09:35:18 +02:00
nl80211.h
ocb.c
radiotap.c
rdev-ops.h
reg.c nl80211: fix a few memory leaks in reg.c 2015-12-15 13:08:02 +01:00
reg.h
regdb.h
scan.c cfg80211: limit scan results cache size 2016-12-02 09:09:01 +01:00
sme.c cfg80211/mac80211: fix BSS leaks when abandoning assoc attempts 2017-01-09 08:07:42 +01:00
sysfs.c
sysfs.h
trace.c
trace.h nl80211: allow BSS data to include CLOCK_BOOTTIME timestamp 2015-10-13 10:32:17 +02:00
util.c
wext-compat.c
wext-compat.h
wext-core.c Revert "wext: Fix 32 bit iwpriv compatibility issue with 64 bit Kernel" 2016-09-24 10:07:41 +02:00
wext-priv.c
wext-proc.c
wext-sme.c
wext-spy.c