
Hi,
2009/10/29 Stefan Roese sr@denx.de:
Hi Remy,
On Wednesday 28 October 2009 22:13:38 Remy Bohmer wrote:
The current generic code for handling unaligned access assumes that the processor can properly handle unaligned accesses itself. This is at least not the case for ARM, which results in runtime errors.
Rewrite it such that it works for ARM as well.
I introduced this header some time ago for UBIFS support (for PowerPC). As you may have noticed, it's a copy from the Linux version. And I
Yep, I noticed that.
would like to keep it this way if possible.
I understand that, but still the code in there is not _generic_, it might work on Linux since the data-abort trapcode is handling this exception that occurs on unaligned accesses...
Looking at the Linux ARM version, the basic difference seems to be the header "include/asm-arm/unaligned.h" which includes this file. The Linux version of "unaligned.h" does *not* include "access_ok.h" at all. It includes "le_byteshift.h" and "be_byteshift.h" instead. And I would really like to keep this in sync with Linux if possible.
So why not do it this way (totally untested): From 3e9aa23a66041f05b94f94b1326941331248a487 Mon Sep 17 00:00:00 2001 From: Stefan Roese sr@denx.de Date: Thu, 29 Oct 2009 05:57:53 +0100 Subject: [PATCH] arm: Use Linux version for unaligned access code
Signed-off-by: Stefan Roese sr@denx.de
include/asm-arm/unaligned.h | 3 +- include/linux/unaligned/be_byteshift.h | 70 ++++++++++++++++++++++++++++++++ include/linux/unaligned/le_byteshift.h | 70 ++++++++++++++++++++++++++++++++ 3 files changed, 142 insertions(+), 1 deletions(-) create mode 100644 include/linux/unaligned/be_byteshift.h create mode 100644 include/linux/unaligned/le_byteshift.h
Indeed, this looks cleaner for ARM and it works as well... (hmm, looks more like the old code I was using which I removed from my USB-CDC-tree since the unaligned.h code was added to mainline...)
Please give it a try and feel free to submit this patch with a better commit text if it works for you.
Cheers, Stefan
I will clean it up and repost that patch. This patch can be ignored.
Kind Regards,
Remy