Subject: Re: [PATCH] Fix ARM BUILD_BUG_ON() errors with batman-adv

From: Antonio Quartulli <[email-masked]>
Date: Sun, 01 Dec 2013 01:27:34 +0100

On 01/12/13 00:05, Russell King - ARM Linux wrote:
> On Sat, Nov 30, 2013 at 09:12:52PM +0100, Antonio Quartulli wrote:
>> I don't know the ARM architecture at all (I don't know if the
>> other batman-adv developers do), so could you please provide here
>> some more details about why that static check is failing? We
>> would like to address this issue differently rather than
>> re-adding the __packed attribute.
> 
> The reason is this struct becomes a size of 4 bytes, even though it
> only contains three uint8_t members.  This offsets the members of
> all structs that this struct is embedded in.
> 
> If you don't wish to fix this, then please make your subsystem 
> depend on !ARM because it's otherwise impossible to fix and can
> never work on ARM.
> 

I'd like to fix this.

Actually I can't really understand your explanation: struct
batadv_header is always used inside another parent structure and the
latter always has a uint8_t following the batadv_header, thus filling
that gap and aligning it to 4bytes.
I think this is also why we don't get this compiler error on any other
architecture. Or am I missing something?

I'll install a toolchain for ARM and I'll try to inspect it better. If
we have to make a change we should do it before 3.13 is release since
this change could possibly alter the packet layout.

- -- 
Antonio Quartulli