Star64_linux/net/wireless
Johannes Berg e646a0257b cfg80211: restore regulatory without calling userspace
Jouni reports that in some cases it is possible that getting
disconnected (or stopping AP, after previous patches) results
in further operations hitting the window within the regulatory
core restoring the regdomain to the defaults. The reason for
this is that we have to call out to CRDA or otherwise do some
asynchronous work, and thus can't do the restore atomically.

However, we've previously seen all the data we need to do the
restore, so we can hang on to that data and use it later for
the restore. This makes the whole thing happen within a single
locked section and thus atomic.

However, we can't *always* do this - there are unfortunately
cases where the restore needs to re-request, because this is
also used (abused?) as an error recovery process, so make the
new behaviour optional and only use it when doing a regular
restore as described above.

Reported-by: Jouni Malinen <j@w1.fi>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2019-02-11 15:46:29 +01:00
..
certs
.gitignore
ap.c
chan.c cfg80211: add some missing fall through annotations 2018-12-18 13:15:08 +01:00
core.c nl80211: announce radios/interfaces when switching namespaces 2018-11-09 11:21:10 +01:00
core.h cfg80211: Move Multiple BSS info to struct cfg80211_bss to be visible 2019-02-08 13:51:50 +01:00
debugfs.c
debugfs.h
ethtool.c
ibss.c
Kconfig
lib80211.c
lib80211_crypt_ccmp.c crypto: drop mask=CRYPTO_ALG_ASYNC from 'cipher' tfm allocations 2018-11-20 14:26:55 +08:00
lib80211_crypt_tkip.c crypto: drop mask=CRYPTO_ALG_ASYNC from 'cipher' tfm allocations 2018-11-20 14:26:55 +08:00
lib80211_crypt_wep.c crypto: drop mask=CRYPTO_ALG_ASYNC from 'cipher' tfm allocations 2018-11-20 14:26:55 +08:00
Makefile cfg80211: add peer measurement with FTM initiator API 2018-11-09 11:20:13 +01:00
mesh.c
mlme.c cfg80211: add missing constraint for user-supplied VHT mask 2018-11-09 08:55:32 +01:00
nl80211.c nl80211: use for_each_element() in validate_ie_attr() 2019-02-08 13:51:50 +01:00
nl80211.h cfg80211: add peer measurement with FTM initiator API 2018-11-09 11:20:13 +01:00
ocb.c
of.c
pmsr.c cfg80211: add peer measurement with FTM initiator API 2018-11-09 11:20:13 +01:00
radiotap.c
rdev-ops.h cfg80211: add peer measurement with FTM initiator API 2018-11-09 11:20:13 +01:00
reg.c cfg80211: restore regulatory without calling userspace 2019-02-11 15:46:29 +01:00
reg.h cfg80211: restore regulatory without calling userspace 2019-02-11 15:46:29 +01:00
scan.c cfg80211: fix memory leak of new_ie 2019-02-08 13:56:37 +01:00
sme.c cfg80211: Prevent regulatory restore during STA disconnect in concurrent interfaces 2018-11-09 09:11:47 +01:00
sysfs.c
sysfs.h
trace.c
trace.h cfg80211: add peer measurement with FTM initiator API 2018-11-09 11:20:13 +01:00
util.c cfg80211: add various struct element finding helpers 2019-02-08 13:51:50 +01:00
wext-compat.c cfg80211: mark expected switch fall-throughs 2019-01-25 14:05:31 +01:00
wext-compat.h
wext-core.c
wext-priv.c
wext-proc.c
wext-sme.c
wext-spy.c