1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/wireless/intel/iwlwifi
Hugh Dickins f1a0898b5d wifi: iwlwifi: mvm: spin_lock_bh() to fix lockdep regression
Lockdep on 6.4-rc on ThinkPad X1 Carbon 5th says
=====================================================
WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected
6.4.0-rc5 #1 Not tainted
-----------------------------------------------------
kworker/3:1/49 [HC0[0]:SC0[4]:HE1:SE0] is trying to acquire:
ffff8881066fa368 (&mvm_sta->deflink.lq_sta.rs_drv.pers.lock){+.+.}-{2:2}, at: rs_drv_get_rate+0x46/0xe7

and this task is already holding:
ffff8881066f80a8 (&sta->rate_ctrl_lock){+.-.}-{2:2}, at: rate_control_get_rate+0xbd/0x126
which would create a new lock dependency:
 (&sta->rate_ctrl_lock){+.-.}-{2:2} -> (&mvm_sta->deflink.lq_sta.rs_drv.pers.lock){+.+.}-{2:2}

but this new dependency connects a SOFTIRQ-irq-safe lock:
 (&sta->rate_ctrl_lock){+.-.}-{2:2}
etc. etc. etc.

Changing the spin_lock() in rs_drv_get_rate() to spin_lock_bh() was not
enough to pacify lockdep, but changing them all on pers.lock has worked.

Fixes: a8938bc881 ("wifi: iwlwifi: mvm: Add locking to the rate read flow")
Signed-off-by: Hugh Dickins <hughd@google.com>
Link: https://lore.kernel.org/r/79ffcc22-9775-cb6d-3ffd-1a517c40beef@google.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2023-06-14 09:05:51 +02:00
..
cfg wifi: iwlwifi: Update support for b0 version 2023-04-20 11:45:54 +02:00
dvm wifi: iwlwifi: dvm: Fix memcpy: detected field-spanning write backtrace 2023-04-19 09:42:28 +02:00
fw wifi: iwlwifi: fix OEM's name in the ppag approved list 2023-05-16 10:27:05 -07:00
mei wifi: iwlwifi: mvm: fix RFKILL report when driver is going down 2023-04-20 11:45:55 +02:00
mvm wifi: iwlwifi: mvm: spin_lock_bh() to fix lockdep regression 2023-06-14 09:05:51 +02:00
pcie wifi: iwlwifi: Update support for b0 version 2023-04-20 11:45:54 +02:00
queue wifi: iwlwifi: add a validity check of queue_id in iwl_txq_reclaim 2023-04-13 16:29:59 +02:00
iwl-agn-hw.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-config.h wifi: iwlwifi: Update support for b0 version 2023-04-20 11:45:54 +02:00
iwl-context-info-gen3.h wifi: iwlwifi: mvm: Support STEP equalizer settings from BIOS. 2023-01-30 13:00:19 +02:00
iwl-context-info.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-csr.h wifi: iwlwifi: Add RF Step Type for BZ device 2023-04-14 13:15:26 +02:00
iwl-dbg-tlv.c wifi: iwlwifi: move debug buffer allocation failure to info verbosity 2023-04-17 09:53:25 +02:00
iwl-dbg-tlv.h iwlwifi: Configure FW debug preset via module param. 2022-03-10 09:23:27 +02:00
iwl-debug.c wifi: iwlwifi: debug: fix crash in __iwl_err() 2023-04-13 16:29:58 +02:00
iwl-debug.h iwlwifi: allow rate-limited error messages 2021-10-22 10:49:03 +03:00
iwl-devtrace-data.h iwlwifi: remove contact information 2021-10-22 10:48:59 +03:00
iwl-devtrace-io.h iwlwifi: remove contact information 2021-10-22 10:48:59 +03:00
iwl-devtrace-iwlwifi.h iwlwifi: remove contact information 2021-10-22 10:48:59 +03:00
iwl-devtrace-msg.h tracing/iwlwifi: Use the new __vstring() helper 2022-07-15 17:44:40 -04:00
iwl-devtrace-ucode.h iwlwifi: remove contact information 2021-10-22 10:48:59 +03:00
iwl-devtrace.c wifi: iwlwifi: Avoid disabling GCC specific flag with clang 2023-03-16 08:51:56 +01:00
iwl-devtrace.h iwlwifi: remove contact information 2021-10-22 10:48:59 +03:00
iwl-drv.c wifi: iwlwifi: mvm: allow number of beacons from FW 2023-04-17 09:53:25 +02:00
iwl-drv.h iwlwifi: move symbols into a separate namespace 2022-02-18 10:40:52 +02:00
iwl-eeprom-parse.c iwlwifi: iwl-eeprom-parse: mostly dvm only 2021-12-21 12:35:04 +02:00
iwl-eeprom-parse.h wifi: iwlwifi: nvm: Update HE capabilities on 6GHz band for EHT device 2023-04-13 16:30:00 +02:00
iwl-eeprom-read.c iwlwifi: eeprom: clean up macros 2022-02-18 10:40:53 +02:00
iwl-eeprom-read.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-fh.h iwlwifi: yoyo: add IMR DRAM dump support 2022-02-18 10:40:51 +02:00
iwl-io.c iwlwifi: make some functions friendly to sparse 2022-02-18 10:40:52 +02:00
iwl-io.h iwlwifi: remove redundant iwl_finish_nic_init() argument 2021-10-22 10:49:02 +03:00
iwl-modparams.h wifi: iwlwifi: mvm: Advertise EHT capabilities 2022-11-28 17:52:51 +02:00
iwl-nvm-parse.c wifi: iwlwifi: nvm-parse: add full BW UL MU-MIMO support 2023-04-17 09:53:23 +02:00
iwl-nvm-parse.h iwlwifi: integrate with iwlmei 2021-11-26 18:31:48 +02:00
iwl-op-mode.h iwlwifi: prepare for synchronous error dumps 2021-08-26 23:32:21 +03:00
iwl-phy-db.c iwlwifi: remove unused macros 2022-02-18 10:40:53 +02:00
iwl-phy-db.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-prph.h wifi: iwlwifi: Add RF Step Type for BZ device 2023-04-14 13:15:26 +02:00
iwl-scd.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-trans.c iwlwifi: cfg: add support for 1K BA queue 2022-02-18 10:40:50 +02:00
iwl-trans.h wifi: iwlwifi: Add RF Step Type for BZ device 2023-04-14 13:15:26 +02:00
Kconfig wifi: iwlwifi: Mark IWLMEI as broken 2022-09-12 14:22:55 +03:00
Makefile iwlwifi: mei: add the driver to allow cooperation with CSME 2021-11-26 18:31:47 +02:00