RE: [PATCH 0/4] rtw88: Four fixes found while working on SDIO support

From: Ping-Ke Shih
Date: Thu Dec 29 2022 - 04:27:18 EST




> -----Original Message-----
> From: Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx>
> Sent: Wednesday, December 28, 2022 9:36 PM
> To: linux-wireless@xxxxxxxxxxxxxxx
> Cc: tony0620emma@xxxxxxxxx; kvalo@xxxxxxxxxx; Ping-Ke Shih <pkshih@xxxxxxxxxxx>; tehuang@xxxxxxxxxxx;
> s.hauer@xxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Martin Blumenstingl
> <martin.blumenstingl@xxxxxxxxxxxxxx>
> Subject: [PATCH 0/4] rtw88: Four fixes found while working on SDIO support
>
> This series consists of three patches which are fixing existing
> behavior (meaning: it either affects PCIe or USB or both) in the rtw88
> driver.
>
> The first change adds the packed attribute to the eFuse structs. This
> was spotted by Ping-Ke while reviewing the SDIO support patches from
> [0].
>
> The remaining three changes relate to locking (barrier hold) problems.
> We previously had discussed patches for this for SDIO support, but the
> problem never ocurred while testing USB cards. It turns out that these
> are still needed and I think that they also fix the same problems for
> USB users (it's not clear how often it happens there though).
>
> The issue fixed by the second and third patches have been spotted by a
> user who tested rtw88 SDIO support. Everything is working fine for him
> but there are warnings [1] and [2] in the kernel log stating "Voluntary
> context switch within RCU read-side critical section!".
>
> The solution in the third and fourth patch was actually suggested by
> Ping-Ke in [3]. Thanks again!
>
>
> [0] https://lore.kernel.org/linux-wireless/695c976e02ed44a2b2345a3ceb226fc4@xxxxxxxxxxx/
> [1] https://github.com/LibreELEC/LibreELEC.tv/pull/7301#issuecomment-1366421445
> [2] https://github.com/LibreELEC/LibreELEC.tv/pull/7301#issuecomment-1366610249
> [3] https://lore.kernel.org/lkml/e0aa1ba4336ab130712e1fcb425e6fd0adca4145.camel@xxxxxxxxxxx/
>
>
> Martin Blumenstingl (4):
> rtw88: Add packed attribute to the eFuse structs

I think this patch depends on another patchset or oppositely.
Please point that out for reviewers.

> rtw88: Configure the registers from rtw_bf_assoc() outside the RCU
> lock
> rtw88: Use rtw_iterate_vifs() for rtw_vif_watch_dog_iter()
> rtw88: Use non-atomic rtw_iterate_stas() in rtw_ra_mask_info_update()
>
> drivers/net/wireless/realtek/rtw88/bf.c | 13 ++++++------
> drivers/net/wireless/realtek/rtw88/mac80211.c | 4 +++-
> drivers/net/wireless/realtek/rtw88/main.c | 6 ++++--
> drivers/net/wireless/realtek/rtw88/main.h | 6 +++---
> drivers/net/wireless/realtek/rtw88/rtw8723d.h | 6 +++---
> drivers/net/wireless/realtek/rtw88/rtw8821c.h | 20 +++++++++----------
> drivers/net/wireless/realtek/rtw88/rtw8822b.h | 20 +++++++++----------
> drivers/net/wireless/realtek/rtw88/rtw8822c.h | 20 +++++++++----------
> 8 files changed, 50 insertions(+), 45 deletions(-)
>
> --
> 2.39.0