ia64/xen-unstable

changeset 17769: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>
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;