From: Martin Blumenstingl > Sent: 04 January 2023 17:49 > > On Wed, Jan 4, 2023 at 5:31 PM David Laight <David.Laight@xxxxxxxxxx> 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. > > 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. > > Do you have any ideas as to why that is? Tail padding - you won't get an odd length for a structure that contains a 16bit item. OTOH I doubt you care about the size of that structure, just the offset of the union and the sizes of the union members. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)