[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>

Tony Luck b704882e ee2f6cc7

+2 -1
+1
arch/ia64/kernel/entry.S
··· 499 END(prefetch_stack) 500 501 GLOBAL_ENTRY(kernel_execve) 502 mov r15=__NR_execve // put syscall number in place 503 break __BREAK_SYSCALL 504 br.ret.sptk.many rp
··· 499 END(prefetch_stack) 500 501 GLOBAL_ENTRY(kernel_execve) 502 + rum psr.ac 503 mov r15=__NR_execve // put syscall number in place 504 break __BREAK_SYSCALL 505 br.ret.sptk.many rp
+1 -1
arch/ia64/kernel/head.S
··· 260 * Switch into virtual mode: 261 */ 262 movl r16=(IA64_PSR_IT|IA64_PSR_IC|IA64_PSR_DT|IA64_PSR_RT|IA64_PSR_DFH|IA64_PSR_BN \ 263 - |IA64_PSR_DI) 264 ;; 265 mov cr.ipsr=r16 266 movl r17=1f
··· 260 * Switch into virtual mode: 261 */ 262 movl r16=(IA64_PSR_IT|IA64_PSR_IC|IA64_PSR_DT|IA64_PSR_RT|IA64_PSR_DFH|IA64_PSR_BN \ 263 + |IA64_PSR_DI|IA64_PSR_AC) 264 ;; 265 mov cr.ipsr=r16 266 movl r17=1f