alignment faults in 3.6
Russell King - ARM Linux
linux at arm.linux.org.uk
Thu Oct 11 06:32:57 EDT 2012
On Thu, Oct 11, 2012 at 12:22:06PM +0200, Eric Dumazet wrote:
> I took a look, and I dont see why/how gcc could use a ldm instruction
>
> Doing so assumed the alignment of the structure was 8 bytes, but its
> not.
>
> Networking stack mandates that IP headers are aligned on 4 bytes
> boundaries, not 8 bytes.
Err, no. ldm is "load multiple" not "load double". It loads multiple
32-bit registers, and its requirement for non-faulting behaviour is for
the pointer to be 4 byte aligned. However, "load double" requires 8
byte alignment.
More information about the linux-arm-kernel
mailing list