-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
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