public inbox for linux-wireless@vger.kernel.org
 help / color / mirror / Atom feed
From: Ping-Ke Shih <pkshih@realtek.com>
To: <linux-wireless@vger.kernel.org>
Cc: <rtl8821cerfe2@gmail.com>
Subject: [PATCH rtw-next 2/2] wifi: rtw89: add __packed to efuse map and do assertion
Date: Sat, 11 Apr 2026 15:24:13 +0800	[thread overview]
Message-ID: <20260411072413.1556575-2-pkshih@realtek.com> (raw)
In-Reply-To: <20260411072413.1556575-1-pkshih@realtek.com>

As arm-linux-gnueabi-gcc compiler align struct field is not always like
gcc on x86 target, the efuse map layout might not be expected. Add __packed
and do assertion to ensure it is expected.

Complied test only with arm-linux-gnueabi-gcc and x86 gcc.

Cc: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtw89/rtw8851b.h        | 8 +++++---
 drivers/net/wireless/realtek/rtw89/rtw8852a.h        | 8 +++++---
 drivers/net/wireless/realtek/rtw89/rtw8852b_common.h | 8 +++++---
 drivers/net/wireless/realtek/rtw89/rtw8852c.h        | 8 +++++---
 drivers/net/wireless/realtek/rtw89/rtw8922a.h        | 2 ++
 drivers/net/wireless/realtek/rtw89/rtw8922d.h        | 2 ++
 6 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtw89/rtw8851b.h b/drivers/net/wireless/realtek/rtw89/rtw8851b.h
index 1a5c52654d8a..5c2e26c04cd9 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8851b.h
+++ b/drivers/net/wireless/realtek/rtw89/rtw8851b.h
@@ -13,11 +13,11 @@
 struct rtw8851bu_efuse {
 	u8 rsvd[0x88];
 	u8 mac_addr[ETH_ALEN];
-};
+} __packed;
 
 struct rtw8851be_efuse {
 	u8 mac_addr[ETH_ALEN];
-};
+} __packed;
 
 struct rtw8851b_tssi_offset {
 	u8 cck_tssi[TSSI_CCK_CH_GROUP_NUM];
@@ -68,9 +68,11 @@ struct rtw8851b_efuse {
 	union {
 		struct rtw8851bu_efuse u;
 		struct rtw8851be_efuse e;
-	};
+	} __packed;
 } __packed;
 
+static_assert(sizeof(struct rtw8851b_efuse) == 0x48e);
+
 extern const struct rtw89_chip_info rtw8851b_chip_info;
 
 #endif
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.h b/drivers/net/wireless/realtek/rtw89/rtw8852a.h
index d6c1acd09238..0d381f6fd182 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852a.h
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.h
@@ -19,11 +19,11 @@ enum rtw8852a_pmac_mode {
 struct rtw8852au_efuse {
 	u8 rsvd[0x38];
 	u8 mac_addr[ETH_ALEN];
-};
+} __packed;
 
 struct rtw8852ae_efuse {
 	u8 mac_addr[ETH_ALEN];
-};
+} __packed;
 
 struct rtw8852a_tssi_offset {
 	u8 cck_tssi[TSSI_CCK_CH_GROUP_NUM];
@@ -78,9 +78,11 @@ struct rtw8852a_efuse {
 	union {
 		struct rtw8852au_efuse u;
 		struct rtw8852ae_efuse e;
-	};
+	} __packed;
 } __packed;
 
+static_assert(sizeof(struct rtw8852a_efuse) == 0x43e);
+
 struct rtw8852a_bb_pmac_info {
 	u8 en_pmac_tx:1;
 	u8 is_cck:1;
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b_common.h b/drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
index 3dce5422f41e..89e936e4b211 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
@@ -20,11 +20,11 @@ enum rtw8852bx_pmac_mode {
 struct rtw8852bx_u_efuse {
 	u8 rsvd[0x88];
 	u8 mac_addr[ETH_ALEN];
-};
+} __packed;
 
 struct rtw8852bx_e_efuse {
 	u8 mac_addr[ETH_ALEN];
-};
+} __packed;
 
 struct rtw8852bx_tssi_offset {
 	u8 cck_tssi[TSSI_CCK_CH_GROUP_NUM];
@@ -89,9 +89,11 @@ struct rtw8852bx_efuse {
 	union {
 		struct rtw8852bx_u_efuse u;
 		struct rtw8852bx_e_efuse e;
-	};
+	} __packed;
 } __packed;
 
+static_assert(sizeof(struct rtw8852bx_efuse) == 0x48e);
+
 struct rtw8852bx_bb_pmac_info {
 	u8 en_pmac_tx:1;
 	u8 is_cck:1;
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.h b/drivers/net/wireless/realtek/rtw89/rtw8852c.h
index 8585921ac6c4..49cb6b4b3b7c 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852c.h
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.h
@@ -13,11 +13,11 @@
 struct rtw8852c_u_efuse {
 	u8 rsvd[0x88];
 	u8 mac_addr[ETH_ALEN];
-};
+} __packed;
 
 struct rtw8852c_e_efuse {
 	u8 mac_addr[ETH_ALEN];
-};
+} __packed;
 
 struct rtw8852c_tssi_offset {
 	u8 cck_tssi[TSSI_CCK_CH_GROUP_NUM];
@@ -95,9 +95,11 @@ struct rtw8852c_efuse {
 	union {
 		struct rtw8852c_u_efuse u;
 		struct rtw8852c_e_efuse e;
-	};
+	} __packed;
 } __packed;
 
+static_assert(sizeof(struct rtw8852c_efuse) == 0x48e);
+
 extern const struct rtw89_chip_info rtw8852c_chip_info;
 
 #endif
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922a.h b/drivers/net/wireless/realtek/rtw89/rtw8922a.h
index a29cfa5b4291..33c87bcc403c 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922a.h
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922a.h
@@ -68,6 +68,8 @@ struct rtw8922a_efuse {
 	struct rtw8922a_rx_gain_6g rx_gain_6g_b;
 } __packed;
 
+static_assert(sizeof(struct rtw8922a_efuse) == 0x1b8);
+
 extern const struct rtw89_chip_info rtw8922a_chip_info;
 extern const struct rtw89_chip_variant rtw8922ae_vs_variant;
 
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922d.h b/drivers/net/wireless/realtek/rtw89/rtw8922d.h
index 22a7d1cc244f..6d0fb01c1216 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922d.h
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922d.h
@@ -77,6 +77,8 @@ struct rtw8922d_efuse {
 	struct rtw8922d_rx_gain_6g rx_gain_6g_b_2;
 } __packed;
 
+static_assert(sizeof(struct rtw8922d_efuse) == 0x222);
+
 extern const struct rtw89_chip_info rtw8922d_chip_info;
 extern const struct rtw89_chip_variant rtw8922de_vs_variant;
 
-- 
2.25.1


      reply	other threads:[~2026-04-11  7:24 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-11  7:24 [PATCH rtw-next 1/2] wifi: rtw88: add __packed to efuse map and do assertion Ping-Ke Shih
2026-04-11  7:24 ` Ping-Ke Shih [this message]

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=20260411072413.1556575-2-pkshih@realtek.com \
    --to=pkshih@realtek.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=rtl8821cerfe2@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