android_kernel_xiaomi_sm8350/net/wireless
Johannes Berg 667503ddcb cfg80211: fix locking
Over time, a lot of locking issues have crept into
the smarts of cfg80211, so e.g. scan completion can
race against a new scan, IBSS join can race against
leaving an IBSS, etc.

Introduce a new per-interface lock that protects
most of the per-interface data that we need to keep
track of, and sprinkle assertions about that lock
everywhere. Some things now need to be offloaded to
work structs so that we don't require being able to
sleep in functions the drivers call. The exception
to that are the MLME callbacks (rx_auth etc.) that
currently only mac80211 calls because it was easier
to do that there instead of in cfg80211, and future
drivers implementing those calls will, if they ever
exist, probably need to use a similar scheme like
mac80211 anyway...

In order to be able to handle _deauth and _disassoc
properly, introduce a cookie passed to it that will
determine locking requirements.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-07-10 15:02:32 -04:00
..
core.c cfg80211: fix locking 2009-07-10 15:02:32 -04:00
core.h cfg80211: fix locking 2009-07-10 15:02:32 -04:00
debugfs.c cfg80211: add debugfs HT40 allow map 2009-05-20 14:46:23 -04:00
debugfs.h mac80211/cfg80211: move wiphy specific debugfs entries to cfg80211 2009-05-20 14:46:23 -04:00
ibss.c cfg80211: fix locking 2009-07-10 15:02:32 -04:00
Kconfig cfg80211: implement iwpower 2009-07-10 15:01:51 -04:00
lib80211_crypt_ccmp.c lib80211: silence excessive crypto debugging messages 2009-03-16 18:01:58 -04:00
lib80211_crypt_tkip.c lib80211: silence excessive crypto debugging messages 2009-03-16 18:01:58 -04:00
lib80211_crypt_wep.c lib80211: absorb crypto bits from net/ieee80211 2008-11-21 11:08:17 -05:00
lib80211.c lib80211: consolidate crypt init routines 2008-11-21 11:08:17 -05:00
Makefile cfg80211: managed mode wext compatibility 2009-07-10 15:01:51 -04:00
mlme.c cfg80211: fix locking 2009-07-10 15:02:32 -04:00
nl80211.c cfg80211: fix locking 2009-07-10 15:02:32 -04:00
nl80211.h cfg80211: fix locking 2009-07-10 15:02:32 -04:00
radiotap.c wireless: use get/put_unaligned_* helpers 2008-05-14 16:29:32 -04:00
reg.c cfg80211: fix for duplicate response for driver reg request 2009-06-10 13:28:37 -04:00
reg.h cfg80211: make __regulatory_hint() static 2009-02-27 14:52:59 -05:00
scan.c cfg80211: fix locking 2009-07-10 15:02:32 -04:00
sme.c cfg80211: fix locking 2009-07-10 15:02:32 -04:00
sysfs.c cfg80211: rename cfg80211_registered_device's idx to wiphy_idx 2009-02-27 14:52:54 -05:00
sysfs.h
util.c cfg80211: assimilate and export ieee80211_bss_get_ie 2009-07-10 15:01:53 -04:00
wext-compat.c cfg80211: fix MFP bug, sparse warnings 2009-07-10 15:02:32 -04:00
wext-sme.c cfg80211: fix locking 2009-07-10 15:02:32 -04:00
wext.c wext: constify extra argument to wireless_send_event 2009-07-10 15:01:49 -04:00