From: Simon Wunderlich sw@simonwunderlich.de Date: Mon, 2 Dec 2013 18:58:47 +0100
Therefore I'd suggest to pick Russels patch, I can send a fix for batadv_interface_rx() later, too.
You are ignoring the downside of Russel's patch which is that it negatively impacts many architectures, in that now the compiler can make no assumptions as to the alignment of a structure marked with "packed" and therefore, for example, a 32-bit load will be done with 4 byte loads, shifts, and masking.
Please just 4 byte align your structures. I can't believe that you cannot make this work cleanly.
Why can't you just include that fourth final byte in the batadv_header structure and have the sub-header types just interpret it differently or ignore it?
This is getting frustrating, I seemed clear to me that the non-packed suggestions given to you so far were both reasonable and easy to implement.