wifi: rtw88: Use rtw_iterate_vifs() for rtw_vif_watch_dog_iter()
authorMartin Blumenstingl <martin.blumenstingl@googlemail.com>
Sun, 8 Jan 2023 21:13:23 +0000 (22:13 +0100)
committerKalle Valo <kvalo@kernel.org>
Mon, 16 Jan 2023 16:27:43 +0000 (18:27 +0200)
commit313f6dc7c5ed723d0c5691553eff4c0090f16bb8
tree448a02d6bab30c6ff94da49cfe30824ffb620adb
parent8a1e2fd8e2da5c8b8c438e20ebffef6881cc9ab8
wifi: rtw88: Use rtw_iterate_vifs() for rtw_vif_watch_dog_iter()

USB and (upcoming) SDIO support may sleep in the read/write handlers.
Make rtw_watch_dog_work() use rtw_iterate_vifs() to prevent "scheduling
while atomic" or "Voluntary context switch within RCU read-side
critical section!" warnings when accessing the registers using an SDIO
card (which is where this issue has been spotted in the real world but
it also affects USB cards).

Fixes: 78d5bf925f30 ("wifi: rtw88: iterate over vif/sta list non-atomically")
Suggested-by: Ping-Ke Shih <pkshih@realtek.com>
Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
Tested-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230108211324.442823-3-martin.blumenstingl@googlemail.com
drivers/net/wireless/realtek/rtw88/main.c