From: Rishik Yechuri <epicrishik@gmail.com>
To: Ping-Ke Shih <pkshih@realtek.com>
Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
Rishik Yechuri <rishik.yechuri.code@gmail.com>
Subject: [PATCH rtw-next 2/6] wifi: rtlwifi: use struct ieee80211_hdr for the reserved page headers
Date: Tue, 10 Nov 2026 12:44:05 -0600 [thread overview]
Message-ID: <20261110184409.42205-3-rishik.yechuri.code@gmail.com> (raw)
In-Reply-To: <20261110184409.42205-1-rishik.yechuri.code@gmail.com>
The reserved page builders also patch the addresses of the beacon, null
data, probe response, QoS null data, BT QoS null data and ARP response
templates with SET_80211_HDR_ADDRESS1(), SET_80211_HDR_ADDRESS2() and
SET_80211_HDR_ADDRESS3() from base.h. These add a hard coded byte
offset to a u8 pointer and copy the six bytes one at a time through
the CP_MACADDR() macro in wifi.h.
struct ieee80211_hdr from <linux/ieee80211.h> has the addr1, addr2 and
addr3 members at the same offsets. Point at each template with that
struct and copy the addresses with ether_addr_copy() on the members.
Then remove the three macros, CP_MACADDR() and the FRAME_OFFSET_*
constants, which have no other users.
No functional change intended.
Signed-off-by: Rishik Yechuri <rishik.yechuri.code@gmail.com>
Assisted-by: Claude:claude-fable-5-1
---
drivers/net/wireless/realtek/rtlwifi/base.h | 14 ---
.../wireless/realtek/rtlwifi/rtl8188ee/fw.c | 28 +++---
.../realtek/rtlwifi/rtl8192c/fw_common.c | 28 +++---
.../wireless/realtek/rtlwifi/rtl8192de/fw.c | 28 +++---
.../wireless/realtek/rtlwifi/rtl8192ee/fw.c | 48 +++++-----
.../wireless/realtek/rtlwifi/rtl8723ae/fw.c | 28 +++---
.../wireless/realtek/rtlwifi/rtl8723be/fw.c | 48 +++++-----
.../wireless/realtek/rtlwifi/rtl8821ae/fw.c | 96 +++++++++----------
drivers/net/wireless/realtek/rtlwifi/wifi.h | 5 -
9 files changed, 152 insertions(+), 171 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtlwifi/base.h b/drivers/net/wireless/realtek/rtlwifi/base.h
index 870ca1dff3ee..e23e6934d1a3 100644
--- a/drivers/net/wireless/realtek/rtlwifi/base.h
+++ b/drivers/net/wireless/realtek/rtlwifi/base.h
@@ -36,23 +36,9 @@ enum ap_peer {
#define MAX_BIT_RATE_LONG_GI_1NSS_80MHZ_MCS9 390 /* Mbps */
#define MAX_BIT_RATE_LONG_GI_1NSS_80MHZ_MCS7 293 /* Mbps */
-#define FRAME_OFFSET_FRAME_CONTROL 0
-#define FRAME_OFFSET_DURATION 2
-#define FRAME_OFFSET_ADDRESS1 4
-#define FRAME_OFFSET_ADDRESS2 10
-#define FRAME_OFFSET_ADDRESS3 16
-#define FRAME_OFFSET_SEQUENCE 22
-#define FRAME_OFFSET_ADDRESS4 24
#define MAX_LISTEN_INTERVAL 10
#define MAX_RATE_TRIES 4
-#define SET_80211_HDR_ADDRESS1(_hdr, _val) \
- CP_MACADDR((u8 *)(_hdr)+FRAME_OFFSET_ADDRESS1, (u8 *)(_val))
-#define SET_80211_HDR_ADDRESS2(_hdr, _val) \
- CP_MACADDR((u8 *)(_hdr)+FRAME_OFFSET_ADDRESS2, (u8 *)(_val))
-#define SET_80211_HDR_ADDRESS3(_hdr, _val) \
- CP_MACADDR((u8 *)(_hdr)+FRAME_OFFSET_ADDRESS3, (u8 *)(_val))
-
#define SET_TX_DESC_SPE_RPT(__pdesc, __val) \
le32p_replace_bits((__le32 *)(__pdesc + 8), __val, BIT(19))
#define SET_TX_DESC_SW_DEFINE(__pdesc, __val) \
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
index cda9388388ab..da9ef7cab2fb 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
@@ -544,18 +544,18 @@ void rtl88e_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
bool rtstatus;
u8 u1rsvdpageloc[5] = { 0 };
bool b_dlok = false;
- u8 *beacon;
+ struct ieee80211_hdr *beacon;
struct ieee80211_pspoll *p_pspoll;
- u8 *nullfunc;
- u8 *p_probersp;
+ struct ieee80211_hdr *nullfunc;
+ struct ieee80211_hdr *p_probersp;
/*---------------------------------------------------------
* (1) beacon
*---------------------------------------------------------
*/
- beacon = &reserved_page_packet[BEACON_PG * 128];
- SET_80211_HDR_ADDRESS2(beacon, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(beacon, mac->bssid);
+ beacon = (struct ieee80211_hdr *)&reserved_page_packet[BEACON_PG * 128];
+ ether_addr_copy(beacon->addr2, mac->mac_addr);
+ ether_addr_copy(beacon->addr3, mac->bssid);
/*-------------------------------------------------------
* (2) ps-poll
@@ -572,10 +572,10 @@ void rtl88e_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
* (3) null data
*---------------------------------------------------------
*/
- nullfunc = &reserved_page_packet[NULL_PG * 128];
- SET_80211_HDR_ADDRESS1(nullfunc, mac->bssid);
- SET_80211_HDR_ADDRESS2(nullfunc, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(nullfunc, mac->bssid);
+ nullfunc = (struct ieee80211_hdr *)&reserved_page_packet[NULL_PG * 128];
+ ether_addr_copy(nullfunc->addr1, mac->bssid);
+ ether_addr_copy(nullfunc->addr2, mac->mac_addr);
+ ether_addr_copy(nullfunc->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(u1rsvdpageloc, NULL_PG);
@@ -583,10 +583,10 @@ void rtl88e_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
* (4) probe response
*----------------------------------------------------------
*/
- p_probersp = &reserved_page_packet[PROBERSP_PG * 128];
- SET_80211_HDR_ADDRESS1(p_probersp, mac->bssid);
- SET_80211_HDR_ADDRESS2(p_probersp, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(p_probersp, mac->bssid);
+ p_probersp = (struct ieee80211_hdr *)&reserved_page_packet[PROBERSP_PG * 128];
+ ether_addr_copy(p_probersp->addr1, mac->bssid);
+ ether_addr_copy(p_probersp->addr2, mac->mac_addr);
+ ether_addr_copy(p_probersp->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1rsvdpageloc, PROBERSP_PG);
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c
index 3e8befbcf865..9570e8608d8c 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c
@@ -572,16 +572,16 @@ void rtl92c_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
u8 u1rsvdpageloc[3] = { 0 };
bool b_dlok = false;
- u8 *beacon;
+ struct ieee80211_hdr *beacon;
struct ieee80211_pspoll *p_pspoll;
- u8 *nullfunc;
- u8 *p_probersp;
+ struct ieee80211_hdr *nullfunc;
+ struct ieee80211_hdr *p_probersp;
/*---------------------------------------------------------
(1) beacon
---------------------------------------------------------*/
- beacon = &reserved_page_packet[BEACON_PG * 128];
- SET_80211_HDR_ADDRESS2(beacon, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(beacon, mac->bssid);
+ beacon = (struct ieee80211_hdr *)&reserved_page_packet[BEACON_PG * 128];
+ ether_addr_copy(beacon->addr2, mac->mac_addr);
+ ether_addr_copy(beacon->addr3, mac->bssid);
/*-------------------------------------------------------
(2) ps-poll
@@ -596,20 +596,20 @@ void rtl92c_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
/*--------------------------------------------------------
(3) null data
---------------------------------------------------------*/
- nullfunc = &reserved_page_packet[NULL_PG * 128];
- SET_80211_HDR_ADDRESS1(nullfunc, mac->bssid);
- SET_80211_HDR_ADDRESS2(nullfunc, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(nullfunc, mac->bssid);
+ nullfunc = (struct ieee80211_hdr *)&reserved_page_packet[NULL_PG * 128];
+ ether_addr_copy(nullfunc->addr1, mac->bssid);
+ ether_addr_copy(nullfunc->addr2, mac->mac_addr);
+ ether_addr_copy(nullfunc->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(u1rsvdpageloc, NULL_PG);
/*---------------------------------------------------------
(4) probe response
----------------------------------------------------------*/
- p_probersp = &reserved_page_packet[PROBERSP_PG * 128];
- SET_80211_HDR_ADDRESS1(p_probersp, mac->bssid);
- SET_80211_HDR_ADDRESS2(p_probersp, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(p_probersp, mac->bssid);
+ p_probersp = (struct ieee80211_hdr *)&reserved_page_packet[PROBERSP_PG * 128];
+ ether_addr_copy(p_probersp->addr1, mac->bssid);
+ ether_addr_copy(p_probersp->addr2, mac->mac_addr);
+ ether_addr_copy(p_probersp->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1rsvdpageloc, PROBERSP_PG);
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
index 23c7b088e8cd..019a64bf1a47 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
@@ -259,16 +259,16 @@ void rtl92d_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool dl_finished)
bool rtstatus;
u8 u1rsvdpageloc[3] = { PROBERSP_PG, PSPOLL_PG, NULL_PG };
bool dlok = false;
- u8 *beacon;
+ struct ieee80211_hdr *beacon;
struct ieee80211_pspoll *p_pspoll;
- u8 *nullfunc;
- u8 *p_probersp;
+ struct ieee80211_hdr *nullfunc;
+ struct ieee80211_hdr *p_probersp;
/*---------------------------------------------------------
(1) beacon
---------------------------------------------------------*/
- beacon = &reserved_page_packet[BEACON_PG * 128];
- SET_80211_HDR_ADDRESS2(beacon, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(beacon, mac->bssid);
+ beacon = (struct ieee80211_hdr *)&reserved_page_packet[BEACON_PG * 128];
+ ether_addr_copy(beacon->addr2, mac->mac_addr);
+ ether_addr_copy(beacon->addr3, mac->bssid);
/*-------------------------------------------------------
(2) ps-poll
--------------------------------------------------------*/
@@ -279,17 +279,17 @@ void rtl92d_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool dl_finished)
/*--------------------------------------------------------
(3) null data
---------------------------------------------------------*/
- nullfunc = &reserved_page_packet[NULL_PG * 128];
- SET_80211_HDR_ADDRESS1(nullfunc, mac->bssid);
- SET_80211_HDR_ADDRESS2(nullfunc, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(nullfunc, mac->bssid);
+ nullfunc = (struct ieee80211_hdr *)&reserved_page_packet[NULL_PG * 128];
+ ether_addr_copy(nullfunc->addr1, mac->bssid);
+ ether_addr_copy(nullfunc->addr2, mac->mac_addr);
+ ether_addr_copy(nullfunc->addr3, mac->bssid);
/*---------------------------------------------------------
(4) probe response
----------------------------------------------------------*/
- p_probersp = &reserved_page_packet[PROBERSP_PG * 128];
- SET_80211_HDR_ADDRESS1(p_probersp, mac->bssid);
- SET_80211_HDR_ADDRESS2(p_probersp, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(p_probersp, mac->bssid);
+ p_probersp = (struct ieee80211_hdr *)&reserved_page_packet[PROBERSP_PG * 128];
+ ether_addr_copy(p_probersp->addr1, mac->bssid);
+ ether_addr_copy(p_probersp->addr2, mac->mac_addr);
+ ether_addr_copy(p_probersp->addr3, mac->bssid);
totalpacketlen = TOTAL_RESERVED_PKT_LEN;
RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD,
"rtl92d_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL",
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c
index e50db134682f..cbbda64e7ce2 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c
@@ -662,19 +662,19 @@ void rtl92ee_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
u8 u1rsvdpageloc[5] = { 0 };
bool b_dlok = false;
- u8 *beacon;
+ struct ieee80211_hdr *beacon;
struct ieee80211_pspoll *p_pspoll;
- u8 *nullfunc;
- u8 *p_probersp;
- u8 *qosnull;
- u8 *btqosnull;
+ struct ieee80211_hdr *nullfunc;
+ struct ieee80211_hdr *p_probersp;
+ struct ieee80211_hdr *qosnull;
+ struct ieee80211_hdr *btqosnull;
/*---------------------------------------------------------
* (1) beacon
*---------------------------------------------------------
*/
- beacon = &reserved_page_packet[BEACON_PG * 128];
- SET_80211_HDR_ADDRESS2(beacon, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(beacon, mac->bssid);
+ beacon = (struct ieee80211_hdr *)&reserved_page_packet[BEACON_PG * 128];
+ ether_addr_copy(beacon->addr2, mac->mac_addr);
+ ether_addr_copy(beacon->addr3, mac->bssid);
/*-------------------------------------------------------
* (2) ps-poll
@@ -691,10 +691,10 @@ void rtl92ee_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
* (3) null data
*---------------------------------------------------------
*/
- nullfunc = &reserved_page_packet[NULL_PG * 128];
- SET_80211_HDR_ADDRESS1(nullfunc, mac->bssid);
- SET_80211_HDR_ADDRESS2(nullfunc, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(nullfunc, mac->bssid);
+ nullfunc = (struct ieee80211_hdr *)&reserved_page_packet[NULL_PG * 128];
+ ether_addr_copy(nullfunc->addr1, mac->bssid);
+ ether_addr_copy(nullfunc->addr2, mac->mac_addr);
+ ether_addr_copy(nullfunc->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(u1rsvdpageloc, NULL_PG);
@@ -702,10 +702,10 @@ void rtl92ee_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
* (4) probe response
*----------------------------------------------------------
*/
- p_probersp = &reserved_page_packet[PROBERSP_PG * 128];
- SET_80211_HDR_ADDRESS1(p_probersp, mac->bssid);
- SET_80211_HDR_ADDRESS2(p_probersp, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(p_probersp, mac->bssid);
+ p_probersp = (struct ieee80211_hdr *)&reserved_page_packet[PROBERSP_PG * 128];
+ ether_addr_copy(p_probersp->addr1, mac->bssid);
+ ether_addr_copy(p_probersp->addr2, mac->mac_addr);
+ ether_addr_copy(p_probersp->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1rsvdpageloc, PROBERSP_PG);
@@ -713,10 +713,10 @@ void rtl92ee_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
* (5) QoS null data
*----------------------------------------------------------
*/
- qosnull = &reserved_page_packet[QOS_NULL_PG * 128];
- SET_80211_HDR_ADDRESS1(qosnull, mac->bssid);
- SET_80211_HDR_ADDRESS2(qosnull, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(qosnull, mac->bssid);
+ qosnull = (struct ieee80211_hdr *)&reserved_page_packet[QOS_NULL_PG * 128];
+ ether_addr_copy(qosnull->addr1, mac->bssid);
+ ether_addr_copy(qosnull->addr2, mac->mac_addr);
+ ether_addr_copy(qosnull->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(u1rsvdpageloc, QOS_NULL_PG);
@@ -724,10 +724,10 @@ void rtl92ee_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
* (6) BT QoS null data
*----------------------------------------------------------
*/
- btqosnull = &reserved_page_packet[BT_QOS_NULL_PG * 128];
- SET_80211_HDR_ADDRESS1(btqosnull, mac->bssid);
- SET_80211_HDR_ADDRESS2(btqosnull, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(btqosnull, mac->bssid);
+ btqosnull = (struct ieee80211_hdr *)&reserved_page_packet[BT_QOS_NULL_PG * 128];
+ ether_addr_copy(btqosnull->addr1, mac->bssid);
+ ether_addr_copy(btqosnull->addr2, mac->mac_addr);
+ ether_addr_copy(btqosnull->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(u1rsvdpageloc, BT_QOS_NULL_PG);
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c
index 63c55dae2aab..14f9402dba8a 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c
@@ -392,18 +392,18 @@ void rtl8723e_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
bool rtstatus;
u8 u1rsvdpageloc[3] = { 0 };
bool b_dlok = false;
- u8 *beacon;
+ struct ieee80211_hdr *beacon;
struct ieee80211_pspoll *p_pspoll;
- u8 *nullfunc;
- u8 *p_probersp;
+ struct ieee80211_hdr *nullfunc;
+ struct ieee80211_hdr *p_probersp;
/*---------------------------------------------------------
* (1) beacon
*---------------------------------------------------------
*/
- beacon = &reserved_page_packet[BEACON_PG * 128];
- SET_80211_HDR_ADDRESS2(beacon, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(beacon, mac->bssid);
+ beacon = (struct ieee80211_hdr *)&reserved_page_packet[BEACON_PG * 128];
+ ether_addr_copy(beacon->addr2, mac->mac_addr);
+ ether_addr_copy(beacon->addr3, mac->bssid);
/*-------------------------------------------------------
* (2) ps-poll
@@ -420,10 +420,10 @@ void rtl8723e_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
* (3) null data
*---------------------------------------------------------
*/
- nullfunc = &reserved_page_packet[NULL_PG * 128];
- SET_80211_HDR_ADDRESS1(nullfunc, mac->bssid);
- SET_80211_HDR_ADDRESS2(nullfunc, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(nullfunc, mac->bssid);
+ nullfunc = (struct ieee80211_hdr *)&reserved_page_packet[NULL_PG * 128];
+ ether_addr_copy(nullfunc->addr1, mac->bssid);
+ ether_addr_copy(nullfunc->addr2, mac->mac_addr);
+ ether_addr_copy(nullfunc->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(u1rsvdpageloc, NULL_PG);
@@ -431,10 +431,10 @@ void rtl8723e_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
* (4) probe response
*----------------------------------------------------------
*/
- p_probersp = &reserved_page_packet[PROBERSP_PG * 128];
- SET_80211_HDR_ADDRESS1(p_probersp, mac->bssid);
- SET_80211_HDR_ADDRESS2(p_probersp, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(p_probersp, mac->bssid);
+ p_probersp = (struct ieee80211_hdr *)&reserved_page_packet[PROBERSP_PG * 128];
+ ether_addr_copy(p_probersp->addr1, mac->bssid);
+ ether_addr_copy(p_probersp->addr2, mac->mac_addr);
+ ether_addr_copy(p_probersp->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1rsvdpageloc, PROBERSP_PG);
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c
index 33c8fb0c49ed..a9e8a58f4287 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c
@@ -483,19 +483,19 @@ void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
u8 u1rsvdpageloc[5] = { 0 };
bool b_dlok = false;
- u8 *beacon;
+ struct ieee80211_hdr *beacon;
struct ieee80211_pspoll *p_pspoll;
- u8 *nullfunc;
- u8 *p_probersp;
- u8 *qosnull;
- u8 *btqosnull;
+ struct ieee80211_hdr *nullfunc;
+ struct ieee80211_hdr *p_probersp;
+ struct ieee80211_hdr *qosnull;
+ struct ieee80211_hdr *btqosnull;
/*---------------------------------------------------------
* (1) beacon
*---------------------------------------------------------
*/
- beacon = &reserved_page_packet[BEACON_PG * 128];
- SET_80211_HDR_ADDRESS2(beacon, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(beacon, mac->bssid);
+ beacon = (struct ieee80211_hdr *)&reserved_page_packet[BEACON_PG * 128];
+ ether_addr_copy(beacon->addr2, mac->mac_addr);
+ ether_addr_copy(beacon->addr3, mac->bssid);
/*-------------------------------------------------------
* (2) ps-poll
@@ -512,10 +512,10 @@ void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (3) null data
*--------------------------------------------------------
*/
- nullfunc = &reserved_page_packet[NULL_PG * 128];
- SET_80211_HDR_ADDRESS1(nullfunc, mac->bssid);
- SET_80211_HDR_ADDRESS2(nullfunc, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(nullfunc, mac->bssid);
+ nullfunc = (struct ieee80211_hdr *)&reserved_page_packet[NULL_PG * 128];
+ ether_addr_copy(nullfunc->addr1, mac->bssid);
+ ether_addr_copy(nullfunc->addr2, mac->mac_addr);
+ ether_addr_copy(nullfunc->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(u1rsvdpageloc, NULL_PG);
@@ -523,10 +523,10 @@ void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (4) probe response
*---------------------------------------------------------
*/
- p_probersp = &reserved_page_packet[PROBERSP_PG * 128];
- SET_80211_HDR_ADDRESS1(p_probersp, mac->bssid);
- SET_80211_HDR_ADDRESS2(p_probersp, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(p_probersp, mac->bssid);
+ p_probersp = (struct ieee80211_hdr *)&reserved_page_packet[PROBERSP_PG * 128];
+ ether_addr_copy(p_probersp->addr1, mac->bssid);
+ ether_addr_copy(p_probersp->addr2, mac->mac_addr);
+ ether_addr_copy(p_probersp->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1rsvdpageloc, PROBERSP_PG);
@@ -534,10 +534,10 @@ void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (5) QoS Null
*---------------------------------------------------------
*/
- qosnull = &reserved_page_packet[QOS_NULL_PG * 128];
- SET_80211_HDR_ADDRESS1(qosnull, mac->bssid);
- SET_80211_HDR_ADDRESS2(qosnull, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(qosnull, mac->bssid);
+ qosnull = (struct ieee80211_hdr *)&reserved_page_packet[QOS_NULL_PG * 128];
+ ether_addr_copy(qosnull->addr1, mac->bssid);
+ ether_addr_copy(qosnull->addr2, mac->mac_addr);
+ ether_addr_copy(qosnull->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(u1rsvdpageloc, QOS_NULL_PG);
@@ -545,10 +545,10 @@ void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (5) QoS Null
*---------------------------------------------------------
*/
- btqosnull = &reserved_page_packet[BT_QOS_NULL_PG * 128];
- SET_80211_HDR_ADDRESS1(btqosnull, mac->bssid);
- SET_80211_HDR_ADDRESS2(btqosnull, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(btqosnull, mac->bssid);
+ btqosnull = (struct ieee80211_hdr *)&reserved_page_packet[BT_QOS_NULL_PG * 128];
+ ether_addr_copy(btqosnull->addr1, mac->bssid);
+ ether_addr_copy(btqosnull->addr2, mac->mac_addr);
+ ether_addr_copy(btqosnull->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(u1rsvdpageloc, BT_QOS_NULL_PG);
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c
index ddae3a14f79e..00176bd64e84 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c
@@ -1524,20 +1524,20 @@ void rtl8812ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
u8 u1rsvdpageloc[5] = { 0 };
u8 u1rsvdpageloc2[7] = { 0 };
bool b_dlok = false;
- u8 *beacon;
+ struct ieee80211_hdr *beacon;
struct ieee80211_pspoll *p_pspoll;
- u8 *nullfunc;
- u8 *qosnull;
- u8 *btqosnull;
- u8 *arpresp;
+ struct ieee80211_hdr *nullfunc;
+ struct ieee80211_hdr *qosnull;
+ struct ieee80211_hdr *btqosnull;
+ struct ieee80211_hdr *arpresp;
/*---------------------------------------------------------
* (1) beacon
*---------------------------------------------------------
*/
- beacon = &reserved_page_packet_8812[BEACON_PG * 512];
- SET_80211_HDR_ADDRESS2(beacon, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(beacon, mac->bssid);
+ beacon = (struct ieee80211_hdr *)&reserved_page_packet_8812[BEACON_PG * 512];
+ ether_addr_copy(beacon->addr2, mac->mac_addr);
+ ether_addr_copy(beacon->addr3, mac->bssid);
if (b_dl_finished) {
totalpacketlen = 512 - 40;
@@ -1558,10 +1558,10 @@ void rtl8812ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (3) null data
*---------------------------------------------------------
*/
- nullfunc = &reserved_page_packet_8812[NULL_PG * 512];
- SET_80211_HDR_ADDRESS1(nullfunc, mac->bssid);
- SET_80211_HDR_ADDRESS2(nullfunc, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(nullfunc, mac->bssid);
+ nullfunc = (struct ieee80211_hdr *)&reserved_page_packet_8812[NULL_PG * 512];
+ ether_addr_copy(nullfunc->addr1, mac->bssid);
+ ether_addr_copy(nullfunc->addr2, mac->mac_addr);
+ ether_addr_copy(nullfunc->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(u1rsvdpageloc, NULL_PG);
@@ -1569,10 +1569,10 @@ void rtl8812ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (4) Qos null data
*----------------------------------------------------------
*/
- qosnull = &reserved_page_packet_8812[QOSNULL_PG * 512];
- SET_80211_HDR_ADDRESS1(qosnull, mac->bssid);
- SET_80211_HDR_ADDRESS2(qosnull, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(qosnull, mac->bssid);
+ qosnull = (struct ieee80211_hdr *)&reserved_page_packet_8812[QOSNULL_PG * 512];
+ ether_addr_copy(qosnull->addr1, mac->bssid);
+ ether_addr_copy(qosnull->addr2, mac->mac_addr);
+ ether_addr_copy(qosnull->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(u1rsvdpageloc, QOSNULL_PG);
@@ -1580,10 +1580,10 @@ void rtl8812ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (5) BT Qos null data
*----------------------------------------------------------
*/
- btqosnull = &reserved_page_packet_8812[BT_QOSNULL_PG * 512];
- SET_80211_HDR_ADDRESS1(btqosnull, mac->bssid);
- SET_80211_HDR_ADDRESS2(btqosnull, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(btqosnull, mac->bssid);
+ btqosnull = (struct ieee80211_hdr *)&reserved_page_packet_8812[BT_QOSNULL_PG * 512];
+ ether_addr_copy(btqosnull->addr1, mac->bssid);
+ ether_addr_copy(btqosnull->addr2, mac->mac_addr);
+ ether_addr_copy(btqosnull->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(u1rsvdpageloc, BT_QOSNULL_PG);
@@ -1595,10 +1595,10 @@ void rtl8812ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (6) ARP Resp
*----------------------------------------------------------
*/
- arpresp = &reserved_page_packet_8812[ARPRESP_PG * 512];
- SET_80211_HDR_ADDRESS1(arpresp, mac->bssid);
- SET_80211_HDR_ADDRESS2(arpresp, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(arpresp, mac->bssid);
+ arpresp = (struct ieee80211_hdr *)&reserved_page_packet_8812[ARPRESP_PG * 512];
+ ether_addr_copy(arpresp->addr1, mac->bssid);
+ ether_addr_copy(arpresp->addr2, mac->mac_addr);
+ ether_addr_copy(arpresp->addr3, mac->bssid);
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_ARP_RSP(u1rsvdpageloc2, ARPRESP_PG);
@@ -1661,20 +1661,20 @@ void rtl8821ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
u8 u1rsvdpageloc[5] = { 0 };
u8 u1rsvdpageloc2[7] = { 0 };
bool b_dlok = false;
- u8 *beacon;
+ struct ieee80211_hdr *beacon;
struct ieee80211_pspoll *p_pspoll;
- u8 *nullfunc;
- u8 *qosnull;
- u8 *btqosnull;
- u8 *arpresp;
+ struct ieee80211_hdr *nullfunc;
+ struct ieee80211_hdr *qosnull;
+ struct ieee80211_hdr *btqosnull;
+ struct ieee80211_hdr *arpresp;
/*---------------------------------------------------------
* (1) beacon
*---------------------------------------------------------
*/
- beacon = &reserved_page_packet_8821[BEACON_PG * 256];
- SET_80211_HDR_ADDRESS2(beacon, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(beacon, mac->bssid);
+ beacon = (struct ieee80211_hdr *)&reserved_page_packet_8821[BEACON_PG * 256];
+ ether_addr_copy(beacon->addr2, mac->mac_addr);
+ ether_addr_copy(beacon->addr3, mac->bssid);
if (b_dl_finished) {
totalpacketlen = 256 - 40;
@@ -1695,10 +1695,10 @@ void rtl8821ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (3) null data
*---------------------------------------------------------i
*/
- nullfunc = &reserved_page_packet_8821[NULL_PG * 256];
- SET_80211_HDR_ADDRESS1(nullfunc, mac->bssid);
- SET_80211_HDR_ADDRESS2(nullfunc, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(nullfunc, mac->bssid);
+ nullfunc = (struct ieee80211_hdr *)&reserved_page_packet_8821[NULL_PG * 256];
+ ether_addr_copy(nullfunc->addr1, mac->bssid);
+ ether_addr_copy(nullfunc->addr2, mac->mac_addr);
+ ether_addr_copy(nullfunc->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(u1rsvdpageloc, NULL_PG);
@@ -1706,10 +1706,10 @@ void rtl8821ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (4) Qos null data
*----------------------------------------------------------
*/
- qosnull = &reserved_page_packet_8821[QOSNULL_PG * 256];
- SET_80211_HDR_ADDRESS1(qosnull, mac->bssid);
- SET_80211_HDR_ADDRESS2(qosnull, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(qosnull, mac->bssid);
+ qosnull = (struct ieee80211_hdr *)&reserved_page_packet_8821[QOSNULL_PG * 256];
+ ether_addr_copy(qosnull->addr1, mac->bssid);
+ ether_addr_copy(qosnull->addr2, mac->mac_addr);
+ ether_addr_copy(qosnull->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(u1rsvdpageloc, QOSNULL_PG);
@@ -1717,10 +1717,10 @@ void rtl8821ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (5) Qos null data
*----------------------------------------------------------
*/
- btqosnull = &reserved_page_packet_8821[BT_QOSNULL_PG * 256];
- SET_80211_HDR_ADDRESS1(btqosnull, mac->bssid);
- SET_80211_HDR_ADDRESS2(btqosnull, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(btqosnull, mac->bssid);
+ btqosnull = (struct ieee80211_hdr *)&reserved_page_packet_8821[BT_QOSNULL_PG * 256];
+ ether_addr_copy(btqosnull->addr1, mac->bssid);
+ ether_addr_copy(btqosnull->addr2, mac->mac_addr);
+ ether_addr_copy(btqosnull->addr3, mac->bssid);
SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(u1rsvdpageloc, BT_QOSNULL_PG);
@@ -1732,10 +1732,10 @@ void rtl8821ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (6) ARP Resp
*----------------------------------------------------------
*/
- arpresp = &reserved_page_packet_8821[ARPRESP_PG * 256];
- SET_80211_HDR_ADDRESS1(arpresp, mac->bssid);
- SET_80211_HDR_ADDRESS2(arpresp, mac->mac_addr);
- SET_80211_HDR_ADDRESS3(arpresp, mac->bssid);
+ arpresp = (struct ieee80211_hdr *)&reserved_page_packet_8821[ARPRESP_PG * 256];
+ ether_addr_copy(arpresp->addr1, mac->bssid);
+ ether_addr_copy(arpresp->addr2, mac->mac_addr);
+ ether_addr_copy(arpresp->addr3, mac->bssid);
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_ARP_RSP(u1rsvdpageloc2, ARPRESP_PG);
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
index 23697704ffee..347255b798c9 100644
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
@@ -2855,11 +2855,6 @@ enum bt_radio_shared {
(_os).octet = (u8 *)(_octet); \
(_os).length = (_len);
-#define CP_MACADDR(des, src) \
- ((des)[0] = (src)[0], (des)[1] = (src)[1],\
- (des)[2] = (src)[2], (des)[3] = (src)[3],\
- (des)[4] = (src)[4], (des)[5] = (src)[5])
-
#define LDPC_HT_ENABLE_RX BIT(0)
#define LDPC_HT_ENABLE_TX BIT(1)
#define LDPC_HT_TEST_TX_ENABLE BIT(2)
--
2.43.0
next prev parent reply other threads:[~2026-11-10 18:44 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-10 18:44 [PATCH rtw-next 0/6] wifi: rtlwifi: replace the 802.11 header helper macros with kernel ones Rishik Yechuri
2026-11-10 18:44 ` [PATCH rtw-next 1/6] wifi: rtlwifi: use struct ieee80211_pspoll for the PS Poll reserved page Rishik Yechuri
2026-11-10 18:44 ` Rishik Yechuri [this message]
2026-11-10 18:44 ` [PATCH rtw-next 3/6] wifi: rtlwifi: call msecs_to_jiffies() directly Rishik Yechuri
2026-11-10 18:44 ` [PATCH rtw-next 4/6] wifi: rtlwifi: rtl8192se: use ALIGN() for the H2C command length Rishik Yechuri
2026-11-10 18:44 ` [PATCH rtw-next 5/6] wifi: rtlwifi: use ieee80211_is_ctl() instead of WLAN_FC_GET_TYPE() Rishik Yechuri
2026-11-10 18:44 ` [PATCH rtw-next 6/6] wifi: rtlwifi: remove byte(), packet_get_type() and FILL_OCTET_STRING() Rishik Yechuri
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261110184409.42205-3-rishik.yechuri.code@gmail.com \
--to=epicrishik@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=pkshih@realtek.com \
--cc=rishik.yechuri.code@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®