Messages in this thread | | | From | Ping-Ke Shih <> | Subject | RE: [PATCH 1/4] rtw88: Add packed attribute to the eFuse structs | Date | Thu, 5 Jan 2023 00:56:15 +0000 |
| |
> -----Original Message----- > From: Martin Blumenstingl <martin.blumenstingl@googlemail.com> > Sent: Thursday, January 5, 2023 1:49 AM > To: David Laight <David.Laight@aculab.com> > Cc: Ping-Ke Shih <pkshih@realtek.com>; linux-wireless@vger.kernel.org; kvalo@kernel.org; > tehuang@realtek.com; s.hauer@pengutronix.de; tony0620emma@gmail.com; netdev@vger.kernel.org; > linux-kernel@vger.kernel.org > Subject: Re: [PATCH 1/4] rtw88: Add packed attribute to the eFuse structs > > On Wed, Jan 4, 2023 at 5:31 PM David Laight <David.Laight@aculab.com> wrote: > [...] > > > > What you may want to do is add compile-time asserts for the > > > > sizes of the structures. > > > Do I get you right that something like: > > > BUILD_BUG_ON(sizeof(rtw8821c_efuse) != 256); > > > is what you have in mind? > > > > That looks like the one... > I tried this (see the attached patch - it's just meant to show what I > did, it's not meant to be applied upstream). > With the attached patch but no other patches this makes the rtw88 > driver compile fine on 6.2-rc2.
I prefer to use static_assert() below the struct if we really need it. In fact, we only list fields of efuse map we need in the struct, not full map.
> > Adding __packed to struct rtw8723d_efuse changes the size of that > struct for me (I'm compiling for AArch64 / ARM64). > With the packed attribute it has 267 bytes, without 268 bytes.
Try
static_assert(offsetof(struct rtw8723d_efuse, rf_antenna_option) == 0xc9);
and other fields to bisect which field gets wrong.
Ping-Ke
| |