[PATCH] usb: fix unaligned access

Eric Bénard eric at eukrea.com
Mon Oct 24 15:02:53 EDT 2011


Hi,

Le 24/10/2011 20:37, Fabian van der Werf a écrit :
>
> Okay, I think it may be a compiler problem. The latest code sourcery
> compiler builds a barebox that breaks on usb. 2009q1-203 builds fine,
> however.
>
> In the usb code the compiler should be able to figure out that the
> access is unaligned from the packed structure. So I guess it should
> split up the access in multiple loads/stores. I will look into the
> binaries to confirm this. The latest compiler may be broken or maybe
> the default behaviour has changed because armv7 actually supports
> unaligned access.
>
can't this be the same problem described here with gcc 4.6 :
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/791552

solved by this patch :
https://launchpadlibrarian.net/73908303/0001-USB-ehci-remove-structure-packing-from-ehci_def.patch

with the following explanation :
The kernel source marks ehci_regs as packed. gcc 4.6 treats all accesses to 
packed structures as unaligned and ends up reading the status register 
multiple times.

Eric



More information about the barebox mailing list