debuggers.hg
changeset 17966:1feb98eb64ef
[IA64] hypervisor needs to turn off psr.i after PAL_HALT_LIGHT
psr.i must be set to 0 on PAL entry and must be unchanged on PAL exit.
But do_block() turns on psr.i.
So we need to set it off at exit of PAL_HALT_LIGHT.
Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
psr.i must be set to 0 on PAL entry and must be unchanged on PAL exit.
But do_block() turns on psr.i.
So we need to set it off at exit of PAL_HALT_LIGHT.
Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
author | Isaku Yamahata <yamahata@valinux.co.jp> |
---|---|
date | Tue Jun 10 15:08:06 2008 +0900 (2008-06-10) |
parents | b844f87db11d |
children | 4af5059f4e0d |
files | xen/arch/ia64/xen/hypercall.c |
line diff
1.1 --- a/xen/arch/ia64/xen/hypercall.c Tue Jun 10 15:00:31 2008 +0900 1.2 +++ b/xen/arch/ia64/xen/hypercall.c Tue Jun 10 15:08:06 2008 +0900 1.3 @@ -173,6 +173,14 @@ ia64_hypercall(struct pt_regs *regs) 1.4 /* do_block only pends a softirq */ 1.5 do_softirq(); 1.6 stop_timer(&v->arch.hlt_timer); 1.7 + /* do_block() calls 1.8 + * local_event_delivery_enable(), 1.9 + * but PALL CALL must be called with 1.10 + * psr.i = 0 and psr.i is unchanged. 1.11 + * SDM vol.2 Part I 11.10.2 1.12 + * PAL Calling Conventions. 1.13 + */ 1.14 + local_event_delivery_disable(); 1.15 } 1.16 regs->r8 = 0; 1.17 regs->r9 = 0;