[IA64] Make gp value point to Region 5 in mca handler
authorZou Nan hai <nanhai.zou@intel.com>
Thu, 14 Sep 2006 00:25:15 +0000 (08:25 +0800)
committerTony Luck <tony.luck@intel.com>
Tue, 26 Sep 2006 21:13:03 +0000 (14:13 -0700)
commitf5a3f3dc189485d607fbd42678cc23958acc0a6e
tree7896c4c57d99011129af4ebfc8e3c24ca460cd1a
parent5c55cd63a77a85f603c98c2171a8054ca34b6a9f
[IA64] Make gp value point to Region 5 in mca handler

MCA dispatch code take physical address of GP passed from SAL, then call
DATA_PA_TO_VA twice on GP before call into C code.  The first time is
in ia64_set_kernel_register, the second time is in VIRTUAL_MODE_ENTER.
The gp is changed to a virtual address in region 7 because DATA_PA_TO_VA
is implemented by dep instruction.

However when notify blocks were called from MCA handler code, because
notify blocks are supported by callback function pointers, gp value
value was switched to region 5 again.

The patch set gp register to kernel gp of region 5 at entry of MCA
dispatch.

Signed-off-by: Zou Nan hai <nanhai.zou@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/mca_asm.S
include/asm-ia64/mca_asm.h