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

Martin Blumenstingl posted 4 patches 2 years, 8 months ago
There is a newer version of this series
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(-)
[PATCH 0/4] rtw88: Four fixes found while working on SDIO support
Posted by Martin Blumenstingl 2 years, 8 months ago
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@realtek.com/
[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@realtek.com/


Martin Blumenstingl (4):
  rtw88: Add packed attribute to the eFuse structs
  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
RE: [PATCH 0/4] rtw88: Four fixes found while working on SDIO support
Posted by Ping-Ke Shih 2 years, 8 months ago

> -----Original Message-----
> From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> Sent: Wednesday, December 28, 2022 9:36 PM
> To: linux-wireless@vger.kernel.org
> Cc: tony0620emma@gmail.com; kvalo@kernel.org; Ping-Ke Shih <pkshih@realtek.com>; tehuang@realtek.com;
> s.hauer@pengutronix.de; netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Martin Blumenstingl
> <martin.blumenstingl@googlemail.com>
> 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@realtek.com/
> [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@realtek.com/
> 
> 
> 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
Re: [PATCH 0/4] rtw88: Four fixes found while working on SDIO support
Posted by Martin Blumenstingl 2 years, 8 months ago
Hi Ping-Ke,

On Thu, Dec 29, 2022 at 10:26 AM Ping-Ke Shih <pkshih@realtek.com> wrote:
[...]
> > 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.
There are no dependencies for this smaller individual series other
than Linux 6.2-rc1 (as this has USB support). I made sure to not
include any of the SDIO changes in this series.
The idea is that it can be applied individually and make it either
into 6.2-rc2 (or newer) or -next (6.3).


Best regards,
Martin
Re: [PATCH 0/4] rtw88: Four fixes found while working on SDIO support
Posted by Kalle Valo 2 years, 8 months ago
Martin Blumenstingl <martin.blumenstingl@googlemail.com> writes:

> Hi Ping-Ke,
>
> On Thu, Dec 29, 2022 at 10:26 AM Ping-Ke Shih <pkshih@realtek.com> wrote:
> [...]
>> > 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.
>
> There are no dependencies for this smaller individual series other
> than Linux 6.2-rc1 (as this has USB support). I made sure to not
> include any of the SDIO changes in this series.
> The idea is that it can be applied individually and make it either
> into 6.2-rc2 (or newer) or -next (6.3).

BTW wireless-next or wireless-testing are the preferred baselines for
wireless patches. Of course you can use other trees if you really want,
but please try to make sure they apply to wireless-next. Conflicts are
always extra churn I would prefer to avoid.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Re: [PATCH 0/4] rtw88: Four fixes found while working on SDIO support
Posted by Ping-Ke Shih 2 years, 8 months ago
On Thu, 2022-12-29 at 11:40 +0100, Martin Blumenstingl wrote:
> Hi Ping-Ke,
> 
> On Thu, Dec 29, 2022 at 10:26 AM Ping-Ke Shih <pkshih@realtek.com> wrote:
> [...]
> > > 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.
> There are no dependencies for this smaller individual series other
> than Linux 6.2-rc1 (as this has USB support). I made sure to not
> include any of the SDIO changes in this series.
> The idea is that it can be applied individually and make it either
> into 6.2-rc2 (or newer) or -next (6.3).
> 

I thought this could depend on SDIO patchset, because you add
struct for efuse layout nearby, so there may be merge conflicts.
Please ignore this comment, then.

Ping-Ke