Message ID | 20250122060310.31976-2-pkshih@realtek.com |
---|---|
State | New |
Headers | show |
Series | wifi: rtw89: switch to wiphy lock and work | expand |
Ping-Ke Shih <pkshih@realtek.com> wrote: > To ensure where are protected by driver mutex can also be protected by > wiphy_lock(), so afterward we can remove driver mutex safely. > > Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> 10 patch(es) applied to rtw-next branch of rtw.git, thanks. ebfc9199df05 wifi: rtw89: add wiphy_lock() to work that isn't held wiphy_lock() yet 4afde17d2667 wifi: rtw89: use wiphy_work() to replace ieee802111_work() 831cceed3baf wifi: rtw89: debugfs: implement file_ops::read/write to replace seq_file 01fd45d9e102 wifi: rtw89: debugfs: specify buffer size allocated by devm_kazlloc() for reading 8fdf78f3cd5f wifi: rtw89: debugfs: use wiphy_locked_debugfs_{read,write}() if needed bdf874dc3c76 wifi: rtw89: debugfs: use debugfs_short_fops 6ee1937d8bc9 wifi: rtw89: remove consumers of driver mutex ed114a7ac636 wifi: rtw89: manual cosmetic along lockdep_assert_wiphy() 2345f351c7f5 wifi: rtw89: remove definition of driver mutex 8afa4ff99a00 wifi: rtw89: pci: not assert wiphy_lock to free early_h2c for PCI probe/remove --- https://github.com/pkshih/rtw.git
diff --git a/drivers/net/wireless/realtek/rtw89/regd.c b/drivers/net/wireless/realtek/rtw89/regd.c index 80b2f74589eb..5b8d95c90d73 100644 --- a/drivers/net/wireless/realtek/rtw89/regd.c +++ b/drivers/net/wireless/realtek/rtw89/regd.c @@ -720,6 +720,7 @@ void rtw89_regd_notifier(struct wiphy *wiphy, struct regulatory_request *request struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy); struct rtw89_dev *rtwdev = hw->priv; + wiphy_lock(wiphy); mutex_lock(&rtwdev->mutex); rtw89_leave_ps_mode(rtwdev); @@ -737,6 +738,7 @@ void rtw89_regd_notifier(struct wiphy *wiphy, struct regulatory_request *request exit: mutex_unlock(&rtwdev->mutex); + wiphy_unlock(wiphy); } /* Maximum Transmit Power field (@raw) can be EIRP or PSD. diff --git a/drivers/net/wireless/realtek/rtw89/ser.c b/drivers/net/wireless/realtek/rtw89/ser.c index 26a944d3b672..d0c8584308c0 100644 --- a/drivers/net/wireless/realtek/rtw89/ser.c +++ b/drivers/net/wireless/realtek/rtw89/ser.c @@ -156,9 +156,11 @@ static void ser_state_run(struct rtw89_ser *ser, u8 evt) rtw89_debug(rtwdev, RTW89_DBG_SER, "ser: %s receive %s\n", ser_st_name(ser), ser_ev_name(ser, evt)); + wiphy_lock(rtwdev->hw->wiphy); mutex_lock(&rtwdev->mutex); rtw89_leave_lps(rtwdev); mutex_unlock(&rtwdev->mutex); + wiphy_unlock(rtwdev->hw->wiphy); ser->st_tbl[ser->state].st_func(ser, evt); } @@ -708,9 +710,11 @@ static void ser_l2_reset_st_hdl(struct rtw89_ser *ser, u8 evt) switch (evt) { case SER_EV_STATE_IN: + wiphy_lock(rtwdev->hw->wiphy); mutex_lock(&rtwdev->mutex); ser_l2_reset_st_pre_hdl(ser); mutex_unlock(&rtwdev->mutex); + wiphy_unlock(rtwdev->hw->wiphy); ieee80211_restart_hw(rtwdev->hw); ser_set_alarm(ser, SER_RECFG_TIMEOUT, SER_EV_L2_RECFG_TIMEOUT);
To ensure where are protected by driver mutex can also be protected by wiphy_lock(), so afterward we can remove driver mutex safely. Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> --- drivers/net/wireless/realtek/rtw89/regd.c | 2 ++ drivers/net/wireless/realtek/rtw89/ser.c | 4 ++++ 2 files changed, 6 insertions(+)