Skip to content

Commit 4e4a37d

Browse files
Ping-Ke ShihSasha Levin
authored andcommitted
wifi: rtw89: add wiphy_lock() to work that isn't held wiphy_lock() yet
[ Upstream commit ebfc919 ] 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 <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Sasha Levin <[email protected]>
1 parent c1ee94b commit 4e4a37d

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

drivers/net/wireless/realtek/rtw89/regd.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,7 @@ void rtw89_regd_notifier(struct wiphy *wiphy, struct regulatory_request *request
695695
struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy);
696696
struct rtw89_dev *rtwdev = hw->priv;
697697

698+
wiphy_lock(wiphy);
698699
mutex_lock(&rtwdev->mutex);
699700
rtw89_leave_ps_mode(rtwdev);
700701

@@ -712,6 +713,7 @@ void rtw89_regd_notifier(struct wiphy *wiphy, struct regulatory_request *request
712713

713714
exit:
714715
mutex_unlock(&rtwdev->mutex);
716+
wiphy_unlock(wiphy);
715717
}
716718

717719
/* Maximum Transmit Power field (@raw) can be EIRP or PSD.

drivers/net/wireless/realtek/rtw89/ser.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,11 @@ static void ser_state_run(struct rtw89_ser *ser, u8 evt)
156156
rtw89_debug(rtwdev, RTW89_DBG_SER, "ser: %s receive %s\n",
157157
ser_st_name(ser), ser_ev_name(ser, evt));
158158

159+
wiphy_lock(rtwdev->hw->wiphy);
159160
mutex_lock(&rtwdev->mutex);
160161
rtw89_leave_lps(rtwdev);
161162
mutex_unlock(&rtwdev->mutex);
163+
wiphy_unlock(rtwdev->hw->wiphy);
162164

163165
ser->st_tbl[ser->state].st_func(ser, evt);
164166
}
@@ -707,9 +709,11 @@ static void ser_l2_reset_st_hdl(struct rtw89_ser *ser, u8 evt)
707709

708710
switch (evt) {
709711
case SER_EV_STATE_IN:
712+
wiphy_lock(rtwdev->hw->wiphy);
710713
mutex_lock(&rtwdev->mutex);
711714
ser_l2_reset_st_pre_hdl(ser);
712715
mutex_unlock(&rtwdev->mutex);
716+
wiphy_unlock(rtwdev->hw->wiphy);
713717

714718
ieee80211_restart_hw(rtwdev->hw);
715719
ser_set_alarm(ser, SER_RECFG_TIMEOUT, SER_EV_L2_RECFG_TIMEOUT);

0 commit comments

Comments
 (0)