alignment faults in 3.6

Mans Rullgard mans.rullgard at
Sat Oct 6 12:04:33 EDT 2012

On 5 October 2012 23:42, Russell King - ARM Linux
<linux at> wrote:
> On Fri, Oct 05, 2012 at 11:37:40PM +0100, Mans Rullgard wrote:
>> The problem is the (__be32 *) casts.  This is a normal pointer to a 32-bit,
>> which is assumed to be aligned, and the cast overrides the packed attribute
>> from the struct.  Dereferencing these cast expressions must be done with the
>> macros from asm/unaligned.h
> Again, not going to happen.

There are only two options for fixing this:

1. Ensure the struct is always aligned.
2. Declare it packed (and fix casts).

Refusing to do either leaves us with a broken kernel.  Is that what you want?

Mans Rullgard / mru

More information about the linux-arm-kernel mailing list