ARM: 6252/1: Use SIGBUS for unaligned access instead of SIGILL

POSIX specify to use signal SIGBUS with code BUS_ADRALN for invalid
address alignment.

Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
Kirill A. Shutemov 2010-07-22 13:16:49 +01:00 committed by Russell King
parent c1ba6ba3dd
commit 3dc91aff9c
2 changed files with 4 additions and 4 deletions

View file

@ -924,8 +924,8 @@ static int __init alignment_init(void)
ai_usermode = UM_FIXUP; ai_usermode = UM_FIXUP;
} }
hook_fault_code(1, do_alignment, SIGILL, "alignment exception"); hook_fault_code(1, do_alignment, SIGBUS, "alignment exception");
hook_fault_code(3, do_alignment, SIGILL, "alignment exception"); hook_fault_code(3, do_alignment, SIGBUS, "alignment exception");
return 0; return 0;
} }

View file

@ -463,9 +463,9 @@ static struct fsr_info {
* defines these to be "precise" aborts. * defines these to be "precise" aborts.
*/ */
{ do_bad, SIGSEGV, 0, "vector exception" }, { do_bad, SIGSEGV, 0, "vector exception" },
{ do_bad, SIGILL, BUS_ADRALN, "alignment exception" }, { do_bad, SIGBUS, BUS_ADRALN, "alignment exception" },
{ do_bad, SIGKILL, 0, "terminal exception" }, { do_bad, SIGKILL, 0, "terminal exception" },
{ do_bad, SIGILL, BUS_ADRALN, "alignment exception" }, { do_bad, SIGBUS, BUS_ADRALN, "alignment exception" },
/* Do we need runtime check ? */ /* Do we need runtime check ? */
#if __LINUX_ARM_ARCH__ < 6 #if __LINUX_ARM_ARCH__ < 6
{ do_bad, SIGBUS, 0, "external abort on linefetch" }, { do_bad, SIGBUS, 0, "external abort on linefetch" },