All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] rtw88: Four fixes found while working on SDIO support
@ 2022-12-29 12:48 Martin Blumenstingl
  2022-12-29 12:48 ` [PATCH 1/4] rtw88: Add packed attribute to the eFuse structs Martin Blumenstingl
                   ` (6 more replies)
  0 siblings, 7 replies; 20+ messages in thread
From: Martin Blumenstingl @ 2022-12-29 12:48 UTC (permalink / raw)
  To: linux-wireless
  Cc: tony0620emma, kvalo, pkshih, s.hauer, netdev, linux-kernel,
	Martin Blumenstingl

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!

These fixes are indepdent of my other series adding SDIO support to the
rtw88 driver, meaning they can be added to the wireless driver tree on
top of Linux 6.2-rc1 or linux-next.


Changes since v1 at [4]:
- Keep the u8 bitfields in patch 1 but split the res2 field into res2_1
  and res2_2 as suggested by Ping-Ke
- Added Ping-Ke's reviewed-by to patches 2-4 - thank you!
- Added a paragraph in the cover-letter to avoid confusion whether
  these patches depend on the rtw88 SDIO support series


[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 |  9 +++++----
 drivers/net/wireless/realtek/rtw88/rtw8822b.h |  9 +++++----
 drivers/net/wireless/realtek/rtw88/rtw8822c.h |  9 +++++----
 8 files changed, 35 insertions(+), 27 deletions(-)

-- 
2.39.0


^ permalink raw reply	[flat|nested] 20+ messages in thread
* [PATCH 0/4] rtw88: Four fixes found while working on SDIO support
@ 2022-12-28 13:35 Martin Blumenstingl
  2022-12-29  9:26 ` Ping-Ke Shih
  0 siblings, 1 reply; 20+ messages in thread
From: Martin Blumenstingl @ 2022-12-28 13:35 UTC (permalink / raw)
  To: linux-wireless
  Cc: tony0620emma, kvalo, pkshih, tehuang, s.hauer, netdev,
	linux-kernel, Martin Blumenstingl

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


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2023-01-10 12:10 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-29 12:48 [PATCH 0/4] rtw88: Four fixes found while working on SDIO support Martin Blumenstingl
2022-12-29 12:48 ` [PATCH 1/4] rtw88: Add packed attribute to the eFuse structs Martin Blumenstingl
2022-12-29 23:47   ` Ping-Ke Shih
2022-12-29 12:48 ` [PATCH 2/4] rtw88: Configure the registers from rtw_bf_assoc() outside the RCU lock Martin Blumenstingl
2022-12-29 23:48   ` Ping-Ke Shih
2023-01-04 15:43     ` Martin Blumenstingl
2023-01-05  0:44       ` Ping-Ke Shih
2022-12-29 12:48 ` [PATCH 3/4] rtw88: Use rtw_iterate_vifs() for rtw_vif_watch_dog_iter() Martin Blumenstingl
2022-12-29 12:48 ` [PATCH 4/4] rtw88: Use non-atomic rtw_iterate_stas() in rtw_ra_mask_info_update() Martin Blumenstingl
2022-12-29 17:41 ` [PATCH 0/4] rtw88: Four fixes found while working on SDIO support Larry Finger
2022-12-29 20:11   ` Martin Blumenstingl
2023-01-04 13:22 ` Sascha Hauer
2023-01-07 18:23 ` gert erkelens
2023-01-08 19:26   ` Martin Blumenstingl
2023-01-09  0:55   ` Ping-Ke Shih
  -- strict thread matches above, loose matches on Subject: below --
2022-12-28 13:35 Martin Blumenstingl
2022-12-29  9:26 ` Ping-Ke Shih
2022-12-29 10:40   ` Martin Blumenstingl
2022-12-29 11:42     ` Ping-Ke Shih
2023-01-10 12:06     ` Kalle Valo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.