[ Sasha's backport helper bot ] Hi, The upstream commit SHA1 provided is correct: 7dd5d2514a8ea58f12096e888b0bd050d7eae20a WARNING: Author mismatch between patch and upstream commit: Backport author: Xiangyu Chen <xiangyu.chen@xxxxxxxxxxxxxxxxx> Commit author: Chih-Kang Chang <gary.chang@xxxxxxxxxxx> Status in newer kernel trees: 6.12.y | Present (exact SHA1) 6.11.y | Present (different SHA1: 490eddc836b2) 6.6.y | Present (different SHA1: fdc73f2cfbe8) 6.1.y | Not found Note: The patch differs from the upstream commit: --- --- - 2024-11-25 09:01:28.194689912 -0500 +++ /tmp/tmp.TyfXwmOFnq 2024-11-25 09:01:28.189015767 -0500 @@ -1,3 +1,5 @@ +[ Upstream commit 7dd5d2514a8ea58f12096e888b0bd050d7eae20a ] + If SER L2 occurs during the WoWLAN resume flow, the add interface flow is triggered by ieee80211_reconfig(). However, due to rtw89_wow_resume() return failure, it will cause the add interface flow @@ -60,31 +62,33 @@ Signed-off-by: Chih-Kang Chang <gary.chang@xxxxxxxxxxx> Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx> Link: https://patch.msgid.link/20240731070506.46100-4-pkshih@xxxxxxxxxxx +Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> +Signed-off-by: Xiangyu Chen <xiangyu.chen@xxxxxxxxxxxxx> --- drivers/net/wireless/realtek/rtw89/mac80211.c | 4 +++- drivers/net/wireless/realtek/rtw89/util.h | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtw89/mac80211.c b/drivers/net/wireless/realtek/rtw89/mac80211.c -index ed7990a2827b8..48ad0d0f76bff 100644 +index 3a108b13aa59..f7880499aeb0 100644 --- a/drivers/net/wireless/realtek/rtw89/mac80211.c +++ b/drivers/net/wireless/realtek/rtw89/mac80211.c -@@ -126,7 +126,9 @@ static int rtw89_ops_add_interface(struct ieee80211_hw *hw, +@@ -105,7 +105,9 @@ static int rtw89_ops_add_interface(struct ieee80211_hw *hw, + + mutex_lock(&rtwdev->mutex); rtwvif->rtwdev = rtwdev; - rtwvif->roc.state = RTW89_ROC_IDLE; - rtwvif->offchan = false; - list_add_tail(&rtwvif->list, &rtwdev->rtwvifs_list); + if (!rtw89_rtwvif_in_list(rtwdev, rtwvif)) + list_add_tail(&rtwvif->list, &rtwdev->rtwvifs_list); + INIT_WORK(&rtwvif->update_beacon_work, rtw89_core_update_beacon_work); - INIT_DELAYED_WORK(&rtwvif->roc.roc_work, rtw89_roc_work); rtw89_leave_ps_mode(rtwdev); + diff --git a/drivers/net/wireless/realtek/rtw89/util.h b/drivers/net/wireless/realtek/rtw89/util.h -index e82e7df052d88..e669544cafd3f 100644 +index 1ae80b7561da..f9f52b5b63b9 100644 --- a/drivers/net/wireless/realtek/rtw89/util.h +++ b/drivers/net/wireless/realtek/rtw89/util.h -@@ -16,6 +16,24 @@ +@@ -14,6 +14,24 @@ #define rtw89_for_each_rtwvif(rtwdev, rtwvif) \ list_for_each_entry(rtwvif, &(rtwdev)->rtwvifs_list, list) @@ -109,3 +113,6 @@ /* The result of negative dividend and positive divisor is undefined, but it * should be one case of round-down or round-up. So, make it round-down if the * result is round-up. +-- +2.43.0 + --- Results of testing on various branches: | Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-6.1.y | Success | Success |