You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
3.0 KiB
91 lines
3.0 KiB
From 4c01a576da348143187464b0ac999363287490fb Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= <ihuguet@redhat.com>
|
|
Date: Wed, 24 May 2023 15:00:36 +0200
|
|
Subject: [PATCH 109/142] wifi: rtw89: set the correct mac_id for management
|
|
frames
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Bugzilla: https://bugzilla.redhat.com/2207499
|
|
|
|
commit 877287f971b145a3699ea8466333d48aff6204e5
|
|
Author: Kuan-Chung Chen <damon.chen@realtek.com>
|
|
Date: Fri Jan 6 20:15:17 2023 +0800
|
|
|
|
wifi: rtw89: set the correct mac_id for management frames
|
|
|
|
The mac_id of management frames should follow rtwvif->mac_id or
|
|
rtwsta->mac_id. Add this patch to set the correct mac_id and
|
|
prevent unexpected behavior.
|
|
|
|
Signed-off-by: Kuan-Chung Chen <damon.chen@realtek.com>
|
|
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
|
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
|
Link: https://lore.kernel.org/r/20230106121517.19841-2-pkshih@realtek.com
|
|
|
|
Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
|
|
---
|
|
drivers/net/wireless/realtek/rtw89/core.c | 31 ++++++++++++++++---------------
|
|
1 file changed, 16 insertions(+), 15 deletions(-)
|
|
|
|
diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
|
|
index 27f7a1860c9d0..4cf4a81ed4f79 100644
|
|
--- a/drivers/net/wireless/realtek/rtw89/core.c
|
|
+++ b/drivers/net/wireless/realtek/rtw89/core.c
|
|
@@ -512,6 +512,21 @@ static u16 rtw89_core_get_mgmt_rate(struct rtw89_dev *rtwdev,
|
|
return __ffs(vif->bss_conf.basic_rates) + lowest_rate;
|
|
}
|
|
|
|
+static u8 rtw89_core_tx_get_mac_id(struct rtw89_dev *rtwdev,
|
|
+ struct rtw89_core_tx_request *tx_req)
|
|
+{
|
|
+ struct ieee80211_vif *vif = tx_req->vif;
|
|
+ struct rtw89_vif *rtwvif = (struct rtw89_vif *)vif->drv_priv;
|
|
+ struct ieee80211_sta *sta = tx_req->sta;
|
|
+ struct rtw89_sta *rtwsta;
|
|
+
|
|
+ if (!sta)
|
|
+ return rtwvif->mac_id;
|
|
+
|
|
+ rtwsta = (struct rtw89_sta *)sta->drv_priv;
|
|
+ return rtwsta->mac_id;
|
|
+}
|
|
+
|
|
static void
|
|
rtw89_core_tx_update_mgmt_info(struct rtw89_dev *rtwdev,
|
|
struct rtw89_core_tx_request *tx_req)
|
|
@@ -528,6 +543,7 @@ rtw89_core_tx_update_mgmt_info(struct rtw89_dev *rtwdev,
|
|
desc_info->qsel = qsel;
|
|
desc_info->ch_dma = ch_dma;
|
|
desc_info->port = desc_info->hiq ? rtwvif->port : 0;
|
|
+ desc_info->mac_id = rtw89_core_tx_get_mac_id(rtwdev, tx_req);
|
|
desc_info->hw_ssn_sel = RTW89_MGMT_HW_SSN_SEL;
|
|
desc_info->hw_seq_mode = RTW89_MGMT_HW_SEQ_MODE;
|
|
|
|
@@ -670,21 +686,6 @@ rtw89_core_tx_update_he_qos_htc(struct rtw89_dev *rtwdev,
|
|
desc_info->bk = true;
|
|
}
|
|
|
|
-static u8 rtw89_core_tx_get_mac_id(struct rtw89_dev *rtwdev,
|
|
- struct rtw89_core_tx_request *tx_req)
|
|
-{
|
|
- struct ieee80211_vif *vif = tx_req->vif;
|
|
- struct rtw89_vif *rtwvif = (struct rtw89_vif *)vif->drv_priv;
|
|
- struct ieee80211_sta *sta = tx_req->sta;
|
|
- struct rtw89_sta *rtwsta;
|
|
-
|
|
- if (!sta)
|
|
- return rtwvif->mac_id;
|
|
-
|
|
- rtwsta = (struct rtw89_sta *)sta->drv_priv;
|
|
- return rtwsta->mac_id;
|
|
-}
|
|
-
|
|
static void
|
|
rtw89_core_tx_update_data_info(struct rtw89_dev *rtwdev,
|
|
struct rtw89_core_tx_request *tx_req)
|
|
--
|
|
2.13.6
|
|
|