xtensa: don't allow overflow/underflow on unaligned stack
authorMax Filippov <jcmvbkbc@gmail.com>
Wed, 6 Aug 2014 21:03:01 +0000 (01:03 +0400)
committerMax Filippov <jcmvbkbc@gmail.com>
Thu, 14 Aug 2014 07:59:32 +0000 (11:59 +0400)
commit3cfc096e4c4fbc234634cf8a30d40348a25fc9ba
treeb97d650f595268a33c0023bfbe407922e7c3f6b2
parentd1b6ba82a50cecf94be540a3a153aa89d97511a0
xtensa: don't allow overflow/underflow on unaligned stack

Double exceptions that happen during register window overflow/underflow
are handled in the topmost stack frame, as if it was the only exception
that occured. However unaligned access exception handler is special
because it needs to analyze instruction that caused the exception, but
the userspace instruction that triggered window exception is completely
irrelevant. Unaligned data access is rather normal in the generic
userspace code, but stack pointer manipulation must always be done by
architecture-aware code and thus unaligned stack means a serious problem
anyway.
Use the default unaligned access handler that raises SIGBUS in case
of unaligned access in window overflow/underflow handler.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
arch/xtensa/kernel/traps.c
arch/xtensa/kernel/vectors.S
arch/xtensa/kernel/vmlinux.lds.S