On Sat, Oct 06, 2012 at 05:04:33PM +0100, Mans Rullgard wrote:
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:
- Ensure the struct is always aligned.
- Declare it packed (and fix casts).
Refusing to do either leaves us with a broken kernel. Is that what you want?
How about you start reading the emails that you receive rather than seemingly insisting that I somehow fix the Linux networking stack - which would involve me talking to someone who has publically tried to oust me from being ARM maintainer, and whom would probably reject any attempt to fix this _because_ I was the person involved in proposing the fix?
It's far better that someone else sorts this out, they are much more likely to get a favourable response.