On 5 October 2012 23:42, Russell King - ARM Linux linux@arm.linux.org.uk 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?