linux-stable/arch/ia64
Zou Nan hai acb15c85de [IA64] Do not assume output registers be reservered.
We found an issue in pal.S.

According to the software runtime SPEC,
The caller's output registers do not need to be preserved for
caller. The callee may reuse input registers for any other
purpose within the procedure.

in ia64_pal_call_phys_stacked,

input registers are copied to output registers before call
into ia64_switch_mode_phys, then used to call into PAL. This
assumes output registers are preserved in ia64_switch_mode_phys,
which may not be true.

In this particular case, ia64_switch_mode_phys alloc a null frame
, and mask off psr.i.
If an interrupt comes at this small window,
or an MCA comes inside the procedure, output registers
maybe changed,
then the pal call may got some staled input registers.

This patch moves the copies from input to output
after ia64_switch_mode_phys to follow the software
runtime convention.

It  also removed some unused labels in
ia64_pal_call_phys_stacked.

Signed-off-by: Zou Nan hai <nanhai.zou@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2006-08-02 16:12:08 -07:00
..
configs [IA64] tiger_defconfig s/NR_CPUS=4/NR_CPUS=16/ 2006-06-28 09:57:16 -07:00
dig [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
hp [IA64] Fix breakage in simscsi.c 2006-07-31 11:49:26 -07:00
ia32 [PATCH] audit syscall classes 2006-07-01 07:44:10 -04:00
kernel [IA64] Do not assume output registers be reservered. 2006-08-02 16:12:08 -07:00
lib Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mm [IA64] sparse cleanups 2006-08-02 16:03:44 -07:00
oprofile Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
pci [PATCH] make valid_mmap_phys_addr_range() take a pfn 2006-07-10 13:24:25 -07:00
scripts Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sn [IA64] sparse cleanups 2006-08-02 16:03:44 -07:00
defconfig [IA64] Increase max node count on SN platforms 2006-03-24 13:15:03 -08:00
install.sh Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig [PATCH] zoned vm counters: basic ZVC (zoned vm counter) implementation 2006-06-30 11:25:34 -07:00
Kconfig.debug [PATCH] Move Kprobes and Oprofile to "Instrumentation Support" menu 2005-11-07 07:53:35 -08:00
Makefile [IA64] add vmlinuz target 2006-06-21 14:31:07 -07:00
module.lds Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00