diff options
author | Russ Anderson <rja@sgi.com> | 2007-06-14 17:01:24 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2007-06-26 16:34:16 -0400 |
commit | c034637967881830979b5415e55578e42f806659 (patch) | |
tree | 8485c5f219af8df274f2a73b1663c73ff8d997c0 /arch/ia64/sn | |
parent | eaf6c766446c0faa326b339900f975e6f1f62b01 (diff) |
[IA64] Force error to surface in nofault code
Montecito behaves slightly differently than previous processors,
resulting in the MCA due to a failed PIO read to sometimes surfacing
outside the nofault code. Adding an additional or and stop bits
ensures the MCA surfaces in the nofault code.
Signed-off-by: Russ Anderson <rja@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/sn')
-rw-r--r-- | arch/ia64/sn/kernel/xp_nofault.S | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/ia64/sn/kernel/xp_nofault.S b/arch/ia64/sn/kernel/xp_nofault.S index b772543053c9..54e8973b6e99 100644 --- a/arch/ia64/sn/kernel/xp_nofault.S +++ b/arch/ia64/sn/kernel/xp_nofault.S | |||
@@ -21,7 +21,8 @@ | |||
21 | xp_nofault_PIOR: | 21 | xp_nofault_PIOR: |
22 | mov r8=r0 // Stage a success return value | 22 | mov r8=r0 // Stage a success return value |
23 | ld8.acq r9=[r32];; // PIO Read the specified register | 23 | ld8.acq r9=[r32];; // PIO Read the specified register |
24 | adds r9=1,r9 // Add to force a consume | 24 | adds r9=1,r9;; // Add to force consumption |
25 | or r9=r9,r9;; // Or to force consumption | ||
25 | br.ret.sptk.many b0;; // Return success | 26 | br.ret.sptk.many b0;; // Return success |
26 | 27 | ||
27 | .global xp_error_PIOR | 28 | .global xp_error_PIOR |