* [PATCH rtw-next 1/6] wifi: rtlwifi: use struct ieee80211_pspoll for the PS Poll reserved page
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 ` Rishik Yechuri
2026-11-10 18:44 ` [PATCH rtw-next 2/6] wifi: rtlwifi: use struct ieee80211_hdr for the reserved page headers Rishik Yechuri
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Rishik Yechuri @ 2026-11-10 18:44 UTC (permalink / raw)
To: Ping-Ke Shih; +Cc: linux-wireless, linux-kernel, Rishik Yechuri
The reserved page builders fill in the PS Poll template with the
SET_80211_PS_POLL_* macros from base.h, which write at fixed byte
offsets into a u8 buffer. The AID macro stores a host order u16, so
the frame is only correct on a little endian machine.
Point at the template with struct ieee80211_pspoll from
<linux/ieee80211.h> instead. Its aid member is __le16, so the AID goes
through cpu_to_le16() and sparse can check it. The two addresses are
copied with ether_addr_copy() on the struct members. Remove the three
macros.
On little endian systems the bytes written are the same as before.
Signed-off-by: Rishik Yechuri <rishik.yechuri.code@gmail.com>
Assisted-by: Claude:claude-fable-5-1
---
drivers/net/wireless/realtek/rtlwifi/base.h | 7 -------
.../wireless/realtek/rtlwifi/rtl8188ee/fw.c | 10 +++++-----
.../realtek/rtlwifi/rtl8192c/fw_common.c | 10 +++++-----
.../wireless/realtek/rtlwifi/rtl8192de/fw.c | 10 +++++-----
.../wireless/realtek/rtlwifi/rtl8192ee/fw.c | 10 +++++-----
.../wireless/realtek/rtlwifi/rtl8723ae/fw.c | 10 +++++-----
.../wireless/realtek/rtlwifi/rtl8723be/fw.c | 10 +++++-----
.../wireless/realtek/rtlwifi/rtl8821ae/fw.c | 20 +++++++++----------
8 files changed, 40 insertions(+), 47 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtlwifi/base.h b/drivers/net/wireless/realtek/rtlwifi/base.h
index f3a6a43a42ec..870ca1dff3ee 100644
--- a/drivers/net/wireless/realtek/rtlwifi/base.h
+++ b/drivers/net/wireless/realtek/rtlwifi/base.h
@@ -46,13 +46,6 @@ enum ap_peer {
#define MAX_LISTEN_INTERVAL 10
#define MAX_RATE_TRIES 4
-#define SET_80211_PS_POLL_AID(_hdr, _val) \
- (*(u16 *)((u8 *)(_hdr) + 2) = _val)
-#define SET_80211_PS_POLL_BSSID(_hdr, _val) \
- ether_addr_copy(((u8 *)(_hdr)) + 4, (u8 *)(_val))
-#define SET_80211_PS_POLL_TA(_hdr, _val) \
- ether_addr_copy(((u8 *)(_hdr))+10, (u8 *)(_val))
-
#define SET_80211_HDR_ADDRESS1(_hdr, _val) \
CP_MACADDR((u8 *)(_hdr)+FRAME_OFFSET_ADDRESS1, (u8 *)(_val))
#define SET_80211_HDR_ADDRESS2(_hdr, _val) \
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
index 9a9f9e14f472..cda9388388ab 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
@@ -545,7 +545,7 @@ void rtl88e_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
u8 u1rsvdpageloc[5] = { 0 };
bool b_dlok = false;
u8 *beacon;
- u8 *p_pspoll;
+ struct ieee80211_pspoll *p_pspoll;
u8 *nullfunc;
u8 *p_probersp;
@@ -561,10 +561,10 @@ void rtl88e_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
* (2) ps-poll
*--------------------------------------------------------
*/
- p_pspoll = &reserved_page_packet[PSPOLL_PG * 128];
- SET_80211_PS_POLL_AID(p_pspoll, (mac->assoc_id | 0xc000));
- SET_80211_PS_POLL_BSSID(p_pspoll, mac->bssid);
- SET_80211_PS_POLL_TA(p_pspoll, mac->mac_addr);
+ p_pspoll = (struct ieee80211_pspoll *)&reserved_page_packet[PSPOLL_PG * 128];
+ p_pspoll->aid = cpu_to_le16(mac->assoc_id | 0xc000);
+ ether_addr_copy(p_pspoll->bssid, mac->bssid);
+ ether_addr_copy(p_pspoll->ta, mac->mac_addr);
SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(u1rsvdpageloc, PSPOLL_PG);
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c
index b618f07f29b0..3e8befbcf865 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c
@@ -573,7 +573,7 @@ void rtl92c_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
bool b_dlok = false;
u8 *beacon;
- u8 *p_pspoll;
+ struct ieee80211_pspoll *p_pspoll;
u8 *nullfunc;
u8 *p_probersp;
/*---------------------------------------------------------
@@ -586,10 +586,10 @@ void rtl92c_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
/*-------------------------------------------------------
(2) ps-poll
--------------------------------------------------------*/
- p_pspoll = &reserved_page_packet[PSPOLL_PG * 128];
- SET_80211_PS_POLL_AID(p_pspoll, (mac->assoc_id | 0xc000));
- SET_80211_PS_POLL_BSSID(p_pspoll, mac->bssid);
- SET_80211_PS_POLL_TA(p_pspoll, mac->mac_addr);
+ p_pspoll = (struct ieee80211_pspoll *)&reserved_page_packet[PSPOLL_PG * 128];
+ p_pspoll->aid = cpu_to_le16(mac->assoc_id | 0xc000);
+ ether_addr_copy(p_pspoll->bssid, mac->bssid);
+ ether_addr_copy(p_pspoll->ta, mac->mac_addr);
SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(u1rsvdpageloc, PSPOLL_PG);
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
index c8444a72ff69..23c7b088e8cd 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
@@ -260,7 +260,7 @@ void rtl92d_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool dl_finished)
u8 u1rsvdpageloc[3] = { PROBERSP_PG, PSPOLL_PG, NULL_PG };
bool dlok = false;
u8 *beacon;
- u8 *p_pspoll;
+ struct ieee80211_pspoll *p_pspoll;
u8 *nullfunc;
u8 *p_probersp;
/*---------------------------------------------------------
@@ -272,10 +272,10 @@ void rtl92d_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool dl_finished)
/*-------------------------------------------------------
(2) ps-poll
--------------------------------------------------------*/
- p_pspoll = &reserved_page_packet[PSPOLL_PG * 128];
- SET_80211_PS_POLL_AID(p_pspoll, (mac->assoc_id | 0xc000));
- SET_80211_PS_POLL_BSSID(p_pspoll, mac->bssid);
- SET_80211_PS_POLL_TA(p_pspoll, mac->mac_addr);
+ p_pspoll = (struct ieee80211_pspoll *)&reserved_page_packet[PSPOLL_PG * 128];
+ p_pspoll->aid = cpu_to_le16(mac->assoc_id | 0xc000);
+ ether_addr_copy(p_pspoll->bssid, mac->bssid);
+ ether_addr_copy(p_pspoll->ta, mac->mac_addr);
/*--------------------------------------------------------
(3) null data
---------------------------------------------------------*/
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c
index 3728e3ec2c25..e50db134682f 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c
@@ -663,7 +663,7 @@ void rtl92ee_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
bool b_dlok = false;
u8 *beacon;
- u8 *p_pspoll;
+ struct ieee80211_pspoll *p_pspoll;
u8 *nullfunc;
u8 *p_probersp;
u8 *qosnull;
@@ -680,10 +680,10 @@ void rtl92ee_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
* (2) ps-poll
*--------------------------------------------------------
*/
- p_pspoll = &reserved_page_packet[PSPOLL_PG * 128];
- SET_80211_PS_POLL_AID(p_pspoll, (mac->assoc_id | 0xc000));
- SET_80211_PS_POLL_BSSID(p_pspoll, mac->bssid);
- SET_80211_PS_POLL_TA(p_pspoll, mac->mac_addr);
+ p_pspoll = (struct ieee80211_pspoll *)&reserved_page_packet[PSPOLL_PG * 128];
+ p_pspoll->aid = cpu_to_le16(mac->assoc_id | 0xc000);
+ ether_addr_copy(p_pspoll->bssid, mac->bssid);
+ ether_addr_copy(p_pspoll->ta, mac->mac_addr);
SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(u1rsvdpageloc, PSPOLL_PG);
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c
index d1b50a80c191..63c55dae2aab 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c
@@ -393,7 +393,7 @@ void rtl8723e_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
u8 u1rsvdpageloc[3] = { 0 };
bool b_dlok = false;
u8 *beacon;
- u8 *p_pspoll;
+ struct ieee80211_pspoll *p_pspoll;
u8 *nullfunc;
u8 *p_probersp;
@@ -409,10 +409,10 @@ void rtl8723e_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
* (2) ps-poll
*--------------------------------------------------------
*/
- p_pspoll = &reserved_page_packet[PSPOLL_PG * 128];
- SET_80211_PS_POLL_AID(p_pspoll, (mac->assoc_id | 0xc000));
- SET_80211_PS_POLL_BSSID(p_pspoll, mac->bssid);
- SET_80211_PS_POLL_TA(p_pspoll, mac->mac_addr);
+ p_pspoll = (struct ieee80211_pspoll *)&reserved_page_packet[PSPOLL_PG * 128];
+ p_pspoll->aid = cpu_to_le16(mac->assoc_id | 0xc000);
+ ether_addr_copy(p_pspoll->bssid, mac->bssid);
+ ether_addr_copy(p_pspoll->ta, mac->mac_addr);
SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(u1rsvdpageloc, PSPOLL_PG);
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c
index b3e6c91e26c0..33c8fb0c49ed 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c
@@ -484,7 +484,7 @@ void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
bool b_dlok = false;
u8 *beacon;
- u8 *p_pspoll;
+ struct ieee80211_pspoll *p_pspoll;
u8 *nullfunc;
u8 *p_probersp;
u8 *qosnull;
@@ -501,10 +501,10 @@ void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (2) ps-poll
*-------------------------------------------------------
*/
- p_pspoll = &reserved_page_packet[PSPOLL_PG * 128];
- SET_80211_PS_POLL_AID(p_pspoll, (mac->assoc_id | 0xc000));
- SET_80211_PS_POLL_BSSID(p_pspoll, mac->bssid);
- SET_80211_PS_POLL_TA(p_pspoll, mac->mac_addr);
+ p_pspoll = (struct ieee80211_pspoll *)&reserved_page_packet[PSPOLL_PG * 128];
+ p_pspoll->aid = cpu_to_le16(mac->assoc_id | 0xc000);
+ ether_addr_copy(p_pspoll->bssid, mac->bssid);
+ ether_addr_copy(p_pspoll->ta, mac->mac_addr);
SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(u1rsvdpageloc, PSPOLL_PG);
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c
index 4facbc0bff4e..ddae3a14f79e 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c
@@ -1525,7 +1525,7 @@ void rtl8812ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
u8 u1rsvdpageloc2[7] = { 0 };
bool b_dlok = false;
u8 *beacon;
- u8 *p_pspoll;
+ struct ieee80211_pspoll *p_pspoll;
u8 *nullfunc;
u8 *qosnull;
u8 *btqosnull;
@@ -1547,10 +1547,10 @@ void rtl8812ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (2) ps-poll
*--------------------------------------------------------
*/
- p_pspoll = &reserved_page_packet_8812[PSPOLL_PG * 512];
- SET_80211_PS_POLL_AID(p_pspoll, (mac->assoc_id | 0xc000));
- SET_80211_PS_POLL_BSSID(p_pspoll, mac->bssid);
- SET_80211_PS_POLL_TA(p_pspoll, mac->mac_addr);
+ p_pspoll = (struct ieee80211_pspoll *)&reserved_page_packet_8812[PSPOLL_PG * 512];
+ p_pspoll->aid = cpu_to_le16(mac->assoc_id | 0xc000);
+ ether_addr_copy(p_pspoll->bssid, mac->bssid);
+ ether_addr_copy(p_pspoll->ta, mac->mac_addr);
SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(u1rsvdpageloc, PSPOLL_PG);
@@ -1662,7 +1662,7 @@ void rtl8821ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
u8 u1rsvdpageloc2[7] = { 0 };
bool b_dlok = false;
u8 *beacon;
- u8 *p_pspoll;
+ struct ieee80211_pspoll *p_pspoll;
u8 *nullfunc;
u8 *qosnull;
u8 *btqosnull;
@@ -1684,10 +1684,10 @@ void rtl8821ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
* (2) ps-poll
*--------------------------------------------------------
*/
- p_pspoll = &reserved_page_packet_8821[PSPOLL_PG * 256];
- SET_80211_PS_POLL_AID(p_pspoll, (mac->assoc_id | 0xc000));
- SET_80211_PS_POLL_BSSID(p_pspoll, mac->bssid);
- SET_80211_PS_POLL_TA(p_pspoll, mac->mac_addr);
+ p_pspoll = (struct ieee80211_pspoll *)&reserved_page_packet_8821[PSPOLL_PG * 256];
+ p_pspoll->aid = cpu_to_le16(mac->assoc_id | 0xc000);
+ ether_addr_copy(p_pspoll->bssid, mac->bssid);
+ ether_addr_copy(p_pspoll->ta, mac->mac_addr);
SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(u1rsvdpageloc, PSPOLL_PG);
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH rtw-next 2/6] wifi: rtlwifi: use struct ieee80211_hdr for the reserved page headers
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
2026-11-10 18:44 ` [PATCH rtw-next 3/6] wifi: rtlwifi: call msecs_to_jiffies() directly Rishik Yechuri
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Rishik Yechuri @ 2026-11-10 18:44 UTC (permalink / raw)
To: Ping-Ke Shih; +Cc: linux-wireless, linux-kernel, Rishik Yechuri
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
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH rtw-next 3/6] wifi: rtlwifi: call msecs_to_jiffies() directly
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 ` [PATCH rtw-next 2/6] wifi: rtlwifi: use struct ieee80211_hdr for the reserved page headers Rishik Yechuri
@ 2026-11-10 18:44 ` Rishik Yechuri
2026-11-10 18:44 ` [PATCH rtw-next 4/6] wifi: rtlwifi: rtl8192se: use ALIGN() for the H2C command length Rishik Yechuri
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Rishik Yechuri @ 2026-11-10 18:44 UTC (permalink / raw)
To: Ping-Ke Shih; +Cc: linux-wireless, linux-kernel, Rishik Yechuri
MSECS() in wifi.h is a plain alias for msecs_to_jiffies(). Call
msecs_to_jiffies() at the 18 sites that used it and remove the macro.
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.c | 2 +-
drivers/net/wireless/realtek/rtlwifi/core.c | 2 +-
drivers/net/wireless/realtek/rtlwifi/ps.c | 6 +++---
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c | 2 +-
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c | 6 +++---
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c | 6 +++---
drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c | 6 +++---
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c | 6 +++---
drivers/net/wireless/realtek/rtlwifi/wifi.h | 1 -
9 files changed, 18 insertions(+), 19 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtlwifi/base.c b/drivers/net/wireless/realtek/rtlwifi/base.c
index b6dcdd03535a..d0eda75f99d9 100644
--- a/drivers/net/wireless/realtek/rtlwifi/base.c
+++ b/drivers/net/wireless/realtek/rtlwifi/base.c
@@ -2230,7 +2230,7 @@ void rtl_watch_dog_timer_callback(struct timer_list *t)
&rtlpriv->works.watchdog_wq, 0);
mod_timer(&rtlpriv->works.watchdog_timer,
- jiffies + MSECS(RTL_WATCH_DOG_TIME));
+ jiffies + msecs_to_jiffies(RTL_WATCH_DOG_TIME));
}
static void rtl_fwevt_wq_callback(struct work_struct *work)
diff --git a/drivers/net/wireless/realtek/rtlwifi/core.c b/drivers/net/wireless/realtek/rtlwifi/core.c
index e971132fee14..cc715b491ff7 100644
--- a/drivers/net/wireless/realtek/rtlwifi/core.c
+++ b/drivers/net/wireless/realtek/rtlwifi/core.c
@@ -615,7 +615,7 @@ static int rtl_op_config(struct ieee80211_hw *hw, int radio_idx, u32 changed)
if (!rtlpriv->psc.multi_buffered)
queue_delayed_work(rtlpriv->works.rtl_wq,
&rtlpriv->works.ps_work,
- MSECS(5));
+ msecs_to_jiffies(5));
} else {
rtl_swlps_rf_awake(hw);
rtlpriv->psc.sw_ps_enabled = false;
diff --git a/drivers/net/wireless/realtek/rtlwifi/ps.c b/drivers/net/wireless/realtek/rtlwifi/ps.c
index bcab12c3b4c1..ba100c2cb525 100644
--- a/drivers/net/wireless/realtek/rtlwifi/ps.c
+++ b/drivers/net/wireless/realtek/rtlwifi/ps.c
@@ -254,7 +254,7 @@ void rtl_ips_nic_off(struct ieee80211_hw *hw)
* this will cause link failed, so we delay 100ms here
*/
queue_delayed_work(rtlpriv->works.rtl_wq,
- &rtlpriv->works.ips_nic_off_wq, MSECS(100));
+ &rtlpriv->works.ips_nic_off_wq, msecs_to_jiffies(100));
}
/* NOTICE: any opmode should exc nic_on, or disable without
@@ -532,7 +532,7 @@ void rtl_swlps_beacon(struct ieee80211_hw *hw, void *data, unsigned int len)
/* back to low-power land. and delay is
* prevent null power save frame tx fail */
queue_delayed_work(rtlpriv->works.rtl_wq,
- &rtlpriv->works.ps_work, MSECS(5));
+ &rtlpriv->works.ps_work, msecs_to_jiffies(5));
} else {
rtl_dbg(rtlpriv, COMP_POWER, DBG_DMESG,
"u_bufferd: %x, m_buffered: %x\n", u_buffed, m_buffed);
@@ -636,7 +636,7 @@ void rtl_swlps_rf_sleep(struct ieee80211_hw *hw)
/* we tested that 40ms is enough for sw & hw sw delay */
queue_delayed_work(rtlpriv->works.rtl_wq, &rtlpriv->works.ps_rfon_wq,
- MSECS(sleep_intv * mac->vif->bss_conf.beacon_int - 40));
+ msecs_to_jiffies(sleep_intv * mac->vif->bss_conf.beacon_int - 40));
}
void rtl_lps_change_work_callback(struct work_struct *work)
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c
index d9132d90feb1..f1a3a0c29b98 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c
@@ -1677,7 +1677,7 @@ static void rtl88e_dm_fast_ant_training(struct ieee80211_hw *hw)
rtl_set_bbreg(hw, DM_REG_IGI_A_11N, BIT(7), 1);
mod_timer(&rtlpriv->works.fast_antenna_training_timer,
- jiffies + MSECS(RTL_WATCH_DOG_TIME));
+ jiffies + msecs_to_jiffies(RTL_WATCH_DOG_TIME));
}
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
index 0dbe92188bb1..bc89d9f2370a 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
@@ -154,7 +154,7 @@ static void _rtl88ee_set_fw_clock_on(struct ieee80211_hw *hw,
spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
if (schedule_timer) {
mod_timer(&rtlpriv->works.fw_clockoff_timer,
- jiffies + MSECS(10));
+ jiffies + msecs_to_jiffies(10));
}
} else {
@@ -195,7 +195,7 @@ static void _rtl88ee_set_fw_clock_off(struct ieee80211_hw *hw,
if (schedule_timer) {
mod_timer(&rtlpriv->works.fw_clockoff_timer,
- jiffies + MSECS(10));
+ jiffies + msecs_to_jiffies(10));
return;
}
@@ -215,7 +215,7 @@ static void _rtl88ee_set_fw_clock_off(struct ieee80211_hw *hw,
} else {
spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
mod_timer(&rtlpriv->works.fw_clockoff_timer,
- jiffies + MSECS(10));
+ jiffies + msecs_to_jiffies(10));
}
}
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
index 00048912900c..a8f88d53e97b 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
@@ -130,7 +130,7 @@ static void _rtl92ee_set_fw_clock_on(struct ieee80211_hw *hw,
spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
if (b_schedule_timer) {
mod_timer(&rtlpriv->works.fw_clockoff_timer,
- jiffies + MSECS(10));
+ jiffies + msecs_to_jiffies(10));
}
} else {
spin_lock_bh(&rtlpriv->locks.fw_ps_lock);
@@ -170,7 +170,7 @@ static void _rtl92ee_set_fw_clock_off(struct ieee80211_hw *hw, u8 rpwm_val)
if (b_schedule_timer) {
mod_timer(&rtlpriv->works.fw_clockoff_timer,
- jiffies + MSECS(10));
+ jiffies + msecs_to_jiffies(10));
return;
}
@@ -189,7 +189,7 @@ static void _rtl92ee_set_fw_clock_off(struct ieee80211_hw *hw, u8 rpwm_val)
} else {
spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
mod_timer(&rtlpriv->works.fw_clockoff_timer,
- jiffies + MSECS(10));
+ jiffies + msecs_to_jiffies(10));
}
}
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
index bf7b5a32adaa..f93970fefb3b 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
@@ -160,7 +160,7 @@ static void _rtl8723be_set_fw_clock_on(struct ieee80211_hw *hw, u8 rpwm_val,
spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
if (b_schedule_timer)
mod_timer(&rtlpriv->works.fw_clockoff_timer,
- jiffies + MSECS(10));
+ jiffies + msecs_to_jiffies(10));
} else {
spin_lock_bh(&rtlpriv->locks.fw_ps_lock);
rtlhal->fw_clk_change_in_progress = false;
@@ -198,7 +198,7 @@ static void _rtl8723be_set_fw_clock_off(struct ieee80211_hw *hw, u8 rpwm_val)
if (b_schedule_timer) {
mod_timer(&rtlpriv->works.fw_clockoff_timer,
- jiffies + MSECS(10));
+ jiffies + msecs_to_jiffies(10));
return;
}
@@ -217,7 +217,7 @@ static void _rtl8723be_set_fw_clock_off(struct ieee80211_hw *hw, u8 rpwm_val)
} else {
spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
mod_timer(&rtlpriv->works.fw_clockoff_timer,
- jiffies + MSECS(10));
+ jiffies + msecs_to_jiffies(10));
}
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
index fb893ed8b802..14f2d35c9b62 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
@@ -157,7 +157,7 @@ static void _rtl8821ae_set_fw_clock_on(struct ieee80211_hw *hw,
spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
if (b_schedule_timer)
mod_timer(&rtlpriv->works.fw_clockoff_timer,
- jiffies + MSECS(10));
+ jiffies + msecs_to_jiffies(10));
} else {
spin_lock_bh(&rtlpriv->locks.fw_ps_lock);
rtlhal->fw_clk_change_in_progress = false;
@@ -196,7 +196,7 @@ static void _rtl8821ae_set_fw_clock_off(struct ieee80211_hw *hw,
if (b_schedule_timer) {
mod_timer(&rtlpriv->works.fw_clockoff_timer,
- jiffies + MSECS(10));
+ jiffies + msecs_to_jiffies(10));
return;
}
@@ -216,7 +216,7 @@ static void _rtl8821ae_set_fw_clock_off(struct ieee80211_hw *hw,
} else {
spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
mod_timer(&rtlpriv->works.fw_clockoff_timer,
- jiffies + MSECS(10));
+ jiffies + msecs_to_jiffies(10));
}
}
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
index 347255b798c9..21a294b80c5b 100644
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
@@ -2823,7 +2823,6 @@ enum bt_radio_shared {
#define packet_get_type(_packet) (EF1BYTE((_packet).octet[0]) & 0xFC)
#define RTL_WATCH_DOG_TIME 2000
-#define MSECS(t) msecs_to_jiffies(t)
#define WLAN_FC_GET_VERS(fc) (le16_to_cpu(fc) & IEEE80211_FCTL_VERS)
#define WLAN_FC_GET_TYPE(fc) (le16_to_cpu(fc) & IEEE80211_FCTL_FTYPE)
#define WLAN_FC_GET_STYPE(fc) (le16_to_cpu(fc) & IEEE80211_FCTL_STYPE)
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread