
Hi Hector,
Hi Albert,
On 02/12/2014 05:31 PM, Albert ARIBAUD wrote:
Hi Hector,
On Wed, 12 Feb 2014 17:24:26 +0100, "Palacios, Hector" Hector.Palacios@digi.com wrote:
Unfortunately this is causing unaligned access in my i.MX6. I'm specifically passing the -mno-unaligned-access when building this file so I guess it has to do with the macro and the packed structure.
I don't think this is due to packed structures, because -mno-unaligned-access tells the compiler that unaligned fields in packed structures should be accesses by breaking the unaligned access into smaller aligned ones, so this would not cause an alignment abort.
What can cause an alignment abort despite -mno-unaligned-access is dereferencing a badly aligned pointer, and this is probably what happens here.
Oh, the macro ALLOC_CACHE_ALIGN_BUFFER is returning a correctly aligned value for the pointer: 0x4FD33BA0 The problem is we don't have to free() the pointer anymore at the end of the function.
I'll repost the patch
I think, that the patch for fixing the unaligned access in this function has already been posted by Piotr Wilczek. We have experienced similar issues with Samsung's Exynos4 based targets.
[PATCH V2] disk:efi: avoid unaligned access on efi partition
Despite its disappearance from patchwork it shall be available at mailing list archive.
The v1 can be found at the following link: http://patchwork.ozlabs.org/patch/282753/
Inclusion of v2 has been postponed since there was a discussion if we shall allow unaligned access (-mno-unaligned-access flag) at armv7 (after patches posted by Tom).
As fair as I can tell, we will keep the current approach so, I think that Tom will be willing to pull this patch (v2) now.
Best regards, Lukasz Majewski