microblaze: Support unaligned address for put/get_user macros
authorMichal Simek <monstr@monstr.eu>
Tue, 21 Jul 2009 10:48:01 +0000 (12:48 +0200)
committerMichal Simek <monstr@monstr.eu>
Mon, 27 Jul 2009 07:03:15 +0000 (09:03 +0200)
commit3863dbceac7e69642b95f43de1c12c6236fdbe5b
treed6e9a0d01784ca1c9e321971a3571fe2bf8b17dc
parent94ad8eb854cbc1cf875a318f9b97314ddc6b1560
microblaze: Support unaligned address for put/get_user macros

This patch add support for cases where load/store instruction
in put/get_user macro gets unaligned pointer to data and this
address is not valid. I prevent all cases which can failed.
I had to disable first stage of unaligned handler which is used
only for noMMU kernel and the whole work is done when interrupt
is enabled.
You have enable HW support for detect unaligned access in Microblaze.

This patch fixed three LTP tests:
getpeername01, getsockname01, socketpair01

Signed-off-by: Michal Simek <monstr@monstr.eu>
arch/microblaze/kernel/hw_exception_handler.S
arch/microblaze/mm/fault.c