linux/drivers/net/wireless
Charlie-cy Wu d6e7d57ed9 wifi: mt76: mt7921: refactor regd update to fix recursive mutex deadlock
Split mt7921_mcu_regd_update() into two functions to prevent recursive
mutex acquisition. Introduce __mt7921_mcu_regd_update() as the internal
implementation that assumes the mutex is already held by the caller,
while mt7921_mcu_regd_update() remains as the external interface that
handles mutex acquisition and release.

This fixes a deadlock issue when mt7921_regd_set_6ghz_power_type() is
called with the device mutex already held. Without this change, calling
mt7921_mcu_regd_update() would attempt to acquire the same mutex again,
causing a recursive lock deadlock.

The __mt7921_mcu_regd_update() function can be safely called when the
caller has already acquired the device mutex, avoiding the deadlock
while maintaining proper synchronization for regulatory domain updates.

Fixes: dc2608cf5224 ("wifi: mt76: mt7921: refactor regulatory notifier flow")
Signed-off-by: Charlie-cy Wu <Charlie-cy.Wu@mediatek.com>
Tested-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
Tested-by: Devin Wittmayer <lucid_duck@justthetip.ca>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2026-08-16 11:07:18 -07:00
..
admtek
ath wifi: ath12k: resolve PENDING ML peer ID from MLO_PEER_MAP HTT event 2026-07-27 08:00:43 -07:00
atmel wifi: at76c50x-usb: avoid length underflow in at76_guess_freq() 2026-07-21 13:27:38 +02:00
broadcom wifi: brcmfmac: fix 802.1X-SHA256 call trace warning 2026-07-22 11:18:02 +02:00
intel wifi: iwlegacy: replace BUG_ON() with WARN_ON() on num_stations check 2026-07-28 15:35:37 +02:00
intersil Too many robustness fixes to list. Mostly for 2026-07-10 16:27:45 +02:00
marvell wifi: mwifiex: use the subframe length when parsing A-MSDU TDLS frames 2026-07-28 15:07:45 +02:00
mediatek wifi: mt76: mt7921: refactor regd update to fix recursive mutex deadlock 2026-08-16 11:07:18 -07:00
microchip wifi: wilc1000: validate assoc response length before subtracting header 2026-07-21 13:25:06 +02:00
purelifi wifi: plfxlc: use module_usb_driver() macro 2026-05-20 11:58:39 +02:00
quantenna wifi: qtnfmac: topaz: defer IRQ enabling until IPC init 2026-06-03 14:11:56 +02:00
ralink wifi: ralink: RT2X00: init EEPROM properly 2026-07-06 14:11:08 +02:00
realtek bitmap updates for v7.2 2026-06-17 11:38:38 +01:00
rsi wifi: rsi: validate beacon length before fixed buffer copy 2026-07-06 14:11:09 +02:00
silabs wifi: move action code from per-type frame structs 2026-03-06 10:36:26 +01:00
st wifi: cw1200: Revert "Fix locking in error paths" 2026-05-04 09:08:24 +02:00
ti Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
virtual wifi: mac80211_hwsim: reject undersized HWSIM_ATTR_TX_INFO 2026-07-21 14:09:21 +02:00
zydas Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
Kconfig
Makefile