linux/drivers/net/wireless
Sara Sharon efa40c7ef6 iwlwifi: mvm: fix suspicious rcu usage warnings
mvm mutex isn't held by iwl_mvm_set_aes_rx_seq or it caller.
iee80211_local->key_mtx is held, but that is internal to mac80211.

The same applies to iwl_mvm_wowlan_program_keys.

Just hold rcu_read_lock, even though we are protected, the penalty
isn't that bad.

Warnings fixed are:

[ 4143.788196] WARNING: suspicious RCU usage
[ 4143.788211] -----------------------------
[ 4143.788220] suspicious rcu_dereference_protected() usage!
[ 4143.788227]
[ 4143.788234] rcu_scheduler_active = 2, debug_locks = 1
[ 4143.788242] 5 locks held by kworker/u8:9/5921:
[ 4143.788331]  #4: ffff88804e69ad08 (&local->key_mtx){+.+.}, at ie80211_iter_keys+0x46/0x380 [mac80211]
[ 4143.788441]
[ 4143.788441] Call Trace:
[ 4143.788455]  dump_stack+0xc1/0x11a
[ 4143.788471]  lockdep_rcu_suspicious+0x14a/0x153
[ 4143.788515]  iwl_mvm_set_aes_rx_seq+0x4a9/0x570 [iwlmvm]
[ 4143.788657]  iwl_mvm_d3_update_keys+0x2ac/0x600 [iwlmvm]
[ 4143.788784]  ieee80211_iter_keys+0x10e/0x380 [mac80211]
[ 4143.788838]  iwl_mvm_setup_connection_keep+0x287/0x8d0 [iwlmvm]

[ 7243.206556] WARNING: suspicious RCU usage
[ 7243.206811] -----------------------------
[ 7243.206926] /suspicious rcu_dereference_protected() usage!
[ 7243.207086]
[ 7243.207204] rcu_scheduler_active = 2, debug_locks = 1
[ 7243.207321] 2 locks held by cat/15952:
[ 7243.207564]  #1: ffff888008c8ad08 (&local->key_mtx){+.+.}, at:
ieee80211_iter_keys+0x46/0x380 [mac80211]
[ 7243.207751]
[ 7243.208094] Call Trace:
[ 7243.208211]  dump_stack+0xc1/0x11a
[ 7243.208355]  lockdep_rcu_suspicious+0x14a/0x153
[ 7243.208509]  iwl_mvm_wowlan_program_keys+0x1db7/0x2340 [iwlmvm]
[ 7243.209852]  ieee80211_iter_keys+0x10e/0x380 [mac80211]

Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/iwlwifi.20201008181047.65872d5f1670.I0b2fb2a65904ae686c3c7c05f881a1e3634dc900@changeid
2020-10-08 20:14:53 +03:00
..
admtek adm8211: switch from 'pci_' to 'dma_' API 2020-08-18 15:51:41 +03:00
ath ath11k: Fix memory leak on error path 2020-10-08 13:45:55 +03:00
atmel atmel: convert tasklets to use new tasklet_setup() API 2020-08-27 16:22:02 +03:00
broadcom wireless-drivers-next patches for v5.10 2020-10-02 15:42:40 -07:00
cisco airo: switch from 'pci_' to 'dma_' API 2020-09-16 08:56:43 +03:00
intel iwlwifi: mvm: fix suspicious rcu usage warnings 2020-10-08 20:14:53 +03:00
intersil net: hostap: Remove in_interrupt() usage 2020-09-29 14:02:55 -07:00
marvell mwifiex: fix double free 2020-10-08 13:46:25 +03:00
mediatek wireless-drivers-next patches for v5.10 2020-09-25 13:16:29 -07:00
microchip net: wilc1000: clean up resource in error path of init mon interface 2020-09-21 16:02:13 +03:00
quantenna qtnfmac: fix resource leaks on unsupported iftype error return path 2020-09-29 11:23:47 +03:00
ralink rt2x00: convert tasklets to use new tasklet_setup() API 2020-08-27 16:22:13 +03:00
realtek rtlwifi: rtl8192se: remove duplicated legacy_httxpowerdiff 2020-10-08 13:47:14 +03:00
rsi rsi: rsi_91x_sdio_ops: File headers are not good kernel-doc candidates 2020-09-01 16:14:49 +03:00
st cw1200: wsm: Remove 'dummy' variables 2020-09-01 12:02:43 +03:00
ti wl1251/wl12xx: fix a typo in comments 2020-09-29 11:24:58 +03:00
zydas net: zd1211rw: Remove ZD_ASSERT(in_interrupt()) 2020-09-29 14:02:54 -07:00
Kconfig wireless-drivers-next patches for v5.9 2020-07-20 17:52:50 -07:00
mac80211_hwsim.c genetlink: move to smaller ops wherever possible 2020-10-02 19:11:11 -07:00
mac80211_hwsim.h
Makefile wilc1000: move wilc driver out of staging 2020-06-26 08:46:46 +03:00
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c rndis_wlan: tighten check of rndis_query_oid return 2020-08-18 15:52:45 +03:00
virt_wifi.c
wl3501_cs.c wl3501_cs: Remove unnecessary NULL check 2020-09-29 11:25:30 +03:00
wl3501.h