ia64/xen-unstable

changeset 9478:986538da9be0

[IA64] set_metaphysical_mode fix

If the old mode is metaphysical mode and the new mode is
virtual mode. set_one_rr(0, PSCB(vcpu,rrs[0]) will not
set machine region register 0, because at this time,
PSCB(vcpu,metaphysical_mode) is 1, VMM need to update
metaphysical_mode first, then call set_one_rr.

Signed-off-by: Anthony Xu <anthony.xu@intel.com>
author awilliam@xenbuild.aw
date Wed Mar 29 12:41:33 2006 -0700 (2006-03-29)
parents b579cf0ad753
children 2b6e531dab38
files xen/arch/ia64/xen/vcpu.c
line diff
     1.1 --- a/xen/arch/ia64/xen/vcpu.c	Wed Mar 29 12:40:01 2006 -0700
     1.2 +++ b/xen/arch/ia64/xen/vcpu.c	Wed Mar 29 12:41:33 2006 -0700
     1.3 @@ -172,10 +172,10 @@ void vcpu_set_metaphysical_mode(VCPU *vc
     1.4  {
     1.5  	/* only do something if mode changes */
     1.6  	if (!!newmode ^ !!PSCB(vcpu,metaphysical_mode)) {
     1.7 +		PSCB(vcpu,metaphysical_mode) = newmode;
     1.8  		if (newmode) set_metaphysical_rr0();
     1.9  		else if (PSCB(vcpu,rrs[0]) != -1)
    1.10  			set_one_rr(0, PSCB(vcpu,rrs[0]));
    1.11 -		PSCB(vcpu,metaphysical_mode) = newmode;
    1.12  	}
    1.13  }
    1.14