linux/net/mac80211
Thomas Pedersen 551842446e mac80211: mesh: fix RCU warning
ifmsh->csa is an RCU-protected pointer. The writer context
in ieee80211_mesh_finish_csa() is already mutually
exclusive with wdev->sdata.mtx, but the RCU checker did
not know this. Use rcu_dereference_protected() to avoid a
warning.

fixes the following warning:

[   12.519089] =============================
[   12.520042] WARNING: suspicious RCU usage
[   12.520652] 5.1.0-rc7-wt+ #16 Tainted: G        W
[   12.521409] -----------------------------
[   12.521972] net/mac80211/mesh.c:1223 suspicious rcu_dereference_check() usage!
[   12.522928] other info that might help us debug this:
[   12.523984] rcu_scheduler_active = 2, debug_locks = 1
[   12.524855] 5 locks held by kworker/u8:2/152:
[   12.525438]  #0: 00000000057be08c ((wq_completion)phy0){+.+.}, at: process_one_work+0x1a2/0x620
[   12.526607]  #1: 0000000059c6b07a ((work_completion)(&sdata->csa_finalize_work)){+.+.}, at: process_one_work+0x1a2/0x620
[   12.528001]  #2: 00000000f184ba7d (&wdev->mtx){+.+.}, at: ieee80211_csa_finalize_work+0x2f/0x90
[   12.529116]  #3: 00000000831a1f54 (&local->mtx){+.+.}, at: ieee80211_csa_finalize_work+0x47/0x90
[   12.530233]  #4: 00000000fd06f988 (&local->chanctx_mtx){+.+.}, at: ieee80211_csa_finalize_work+0x51/0x90

Signed-off-by: Thomas Pedersen <thomas@eero.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2019-05-28 09:47:10 +02:00
..
aead_api.c mac80211: use crypto_aead_authsize() 2017-10-11 15:46:45 +02:00
aead_api.h mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
aes_ccm.h mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
aes_cmac.c
aes_cmac.h
aes_gcm.h mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
aes_gmac.c
aes_gmac.h
agg-rx.c mac80211: add support for HE 2018-06-18 22:40:32 +02:00
agg-tx.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-02-15 12:38:38 -08:00
cfg.c mac80211: probe unexercised mesh links 2019-04-26 13:02:11 +02:00
chan.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
debug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs_key.c
debugfs_key.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs_netdev.c mac80211: don't attempt to rename ERR_PTR() debugfs dirs 2019-04-23 13:47:05 +02:00
debugfs_netdev.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs_sta.c mac80211: update HE IEs to D3.3 2019-02-22 13:46:55 +01:00
debugfs_sta.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs.c mac80211: debugfs option to force TX status frames 2019-04-26 13:02:11 +02:00
debugfs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
driver-ops.c mac80211: store tx power value from user to station 2019-04-26 13:02:11 +02:00
driver-ops.h Various updates, notably: 2019-04-26 16:05:52 -04:00
ethtool.c mac80211: use BIT_ULL for NL80211_STA_INFO_* attribute types 2018-06-29 09:53:09 +02:00
fils_aead.c
fils_aead.h
he.c mac80211: add support for HE 2018-06-18 22:40:32 +02:00
ht.c mac80211: fix RX STBC override byte order 2019-04-10 14:13:54 +02:00
ibss.c mac80211: pass bssids to elements parsing function 2019-02-08 13:51:50 +01:00
ieee80211_i.h mac80211: handle deauthentication/disassociation from TDLS peer 2019-05-24 11:26:44 +02:00
iface.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-05-02 22:14:21 -04:00
Kconfig mac80211: rewrite Kconfig text for mesh 2018-12-05 15:32:28 +01:00
key.c mac80211: remove set but not used variable 'old' 2019-05-24 11:26:44 +02:00
key.h mac80211: IEEE 802.11 Extended Key ID support 2019-04-26 13:02:11 +02:00
led.c leds: triggers: let struct led_trigger::activate() return an error code 2018-07-05 23:21:10 +02:00
led.h
main.c mac80211: Set CAN_REPLACE_PTK0 for SW crypto only drivers 2019-04-26 13:02:11 +02:00
Makefile mac80211: minstrel: merge with minstrel_ht, always enable VHT support 2018-10-11 16:01:01 +02:00
mesh_hwmp.c mac80211: probe unexercised mesh links 2019-04-26 13:02:11 +02:00
mesh_pathtbl.c Various updates, notably: 2019-04-26 16:05:52 -04:00
mesh_plink.c mac80211: pass bssids to elements parsing function 2019-02-08 13:51:50 +01:00
mesh_ps.c
mesh_sync.c
mesh.c mac80211: mesh: fix RCU warning 2019-05-28 09:47:10 +02:00
mesh.h mac80211: Add support for NL80211_STA_INFO_AIRTIME_LINK_METRIC 2019-04-08 13:58:10 +02:00
michael.c mac80211: add get TID helper 2018-02-22 21:13:03 +01:00
michael.h
mlme.c mac80211: handle deauthentication/disassociation from TDLS peer 2019-05-24 11:26:44 +02:00
ocb.c mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
offchannel.c mac80211: support scan features for improved scan privacy 2018-06-15 13:34:40 +02:00
pm.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rate.c
rate.h mac80211: minstrel: merge with minstrel_ht, always enable VHT support 2018-10-11 16:01:01 +02:00
rc80211_minstrel_debugfs.c mac80211: rc80211_minstrel: remove variance / stddev calculation 2018-10-11 16:01:05 +02:00
rc80211_minstrel_ht_debugfs.c mac80211: minstrel_ht: add flag to indicate missing/inaccurate tx A-MPDU length 2019-01-19 09:56:56 +01:00
rc80211_minstrel_ht.c mac80211: minstrel_ht: automatically calculate rate duration shift 2019-04-26 13:02:11 +02:00
rc80211_minstrel_ht.h mac80211: minstrel_ht: add support for rates with 4 spatial streams 2019-04-26 13:02:11 +02:00
rc80211_minstrel.c mac80211: rc80211_minstrel: remove variance / stddev calculation 2018-10-11 16:01:05 +02:00
rc80211_minstrel.h mac80211: rc80211_minstrel: remove variance / stddev calculation 2018-10-11 16:01:05 +02:00
rx.c Various updates, notably: 2019-04-26 16:05:52 -04:00
scan.c mac80211: support multi-bssid 2019-02-08 13:56:37 +01:00
spectmgmt.c mac80211: support max channel switch time element 2019-02-22 13:42:54 +01:00
sta_info.c mac80211: IEEE 802.11 Extended Key ID support 2019-04-26 13:02:11 +02:00
sta_info.h mac80211: fix missing/malformed documentation 2019-02-01 12:11:13 +01:00
status.c mac80211: Add airtime accounting and scheduling to TXQs 2019-01-19 09:31:43 +01:00
tdls.c mac80211: handle deauthentication/disassociation from TDLS peer 2019-05-24 11:26:44 +02:00
tkip.c
tkip.h
trace_msg.h mac80211: Increase MAX_MSG_LEN 2019-03-29 11:20:36 +01:00
trace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
trace.h mac80211: store tx power value from user to station 2019-04-26 13:02:11 +02:00
tx.c Various updates, notably: 2019-04-26 16:05:52 -04:00
util.c {nl,mac}80211: allow 4addr AP operation on crypto controlled devices 2019-05-24 11:26:54 +02:00
vht.c mac80211: copy VHT EXT NSS BW Support/Capable data to station 2018-09-05 10:03:14 +02:00
wep.c crypto: drop mask=CRYPTO_ALG_ASYNC from 'cipher' tfm allocations 2018-11-20 14:26:55 +08:00
wep.h
wme.c mac80211: when using iTXQ, select the queue in ieee80211_subif_start_xmit 2019-04-26 13:02:11 +02:00
wme.h mac80211: when using iTXQ, select the queue in ieee80211_subif_start_xmit 2019-04-26 13:02:11 +02:00
wpa.c mac80211: Do not use stack memory with scatterlist for GMAC 2019-05-28 09:22:12 +02:00
wpa.h