summaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/entry.S
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2008-11-20 13:27:12 -0800
committerTony Luck <tony.luck@intel.com>2008-11-20 13:27:12 -0800
commitb704882e70d87d7f56db5ff17e2253f3fa90e4f3 (patch)
treef5cc0f6d62b6b6a98e89ef50a3c77c89b847e393 /arch/ia64/kernel/entry.S
parentee2f6cc7f9ea2542ad46070ed62ba7aa04d08871 (diff)
downloadlinux-b704882e70d87d7f56db5ff17e2253f3fa90e4f3.tar.gz
linux-b704882e70d87d7f56db5ff17e2253f3fa90e4f3.tar.bz2
linux-b704882e70d87d7f56db5ff17e2253f3fa90e4f3.zip
[IA64] Rationalize kernel mode alignment checking
Itanium processors can handle some misaligned data accesses. They also provide a mode where all such accesses are forced to trap. The kernel was schizophrenic about use of this mode: * Base kernel code ran in permissive mode where the only traps generated were from those cases that the h/w could not handle. * Interrupt, syscall and trap code ran in strict mode where all unaligned accesses caused traps to the 0x5a00 unaligned reference vector. Use strict alignment checking throughout the kernel, but make sure that we continue to let user mode use more relaxed mode as the default. Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel/entry.S')
-rw-r--r--arch/ia64/kernel/entry.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S
index 7ef0c594f5ed..d435f4a7a96c 100644
--- a/arch/ia64/kernel/entry.S
+++ b/arch/ia64/kernel/entry.S
@@ -499,6 +499,7 @@ GLOBAL_ENTRY(prefetch_stack)
END(prefetch_stack)
GLOBAL_ENTRY(kernel_execve)
+ rum psr.ac
mov r15=__NR_execve // put syscall number in place
break __BREAK_SYSCALL
br.ret.sptk.many rp