ia64/xen-unstable

changeset 10936:3f3388f3e605

[IA64] Virtualize dom0 lid

Because dom0 can't write eid/id into iosapics, lid can be virtualized.

Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
author awilliam@xenbuild.aw
date Tue Aug 08 14:40:57 2006 -0600 (2006-08-08)
parents 555eb7402bd8
children 15498beef5d8
files xen/arch/ia64/xen/dom_fw.c xen/arch/ia64/xen/vcpu.c
line diff
     1.1 --- a/xen/arch/ia64/xen/dom_fw.c	Tue Aug 08 14:38:10 2006 -0600
     1.2 +++ b/xen/arch/ia64/xen/dom_fw.c	Tue Aug 08 14:40:57 2006 -0600
     1.3 @@ -253,10 +253,14 @@ acpi_update_lsapic (acpi_table_entry_hea
     1.4  		enable = 0;
     1.5  	if (lsapic->flags.enabled && enable) {
     1.6  		printk("enable lsapic entry: 0x%lx\n", (u64)lsapic);
     1.7 +		lsapic->id = lsapic_nbr;
     1.8 +		lsapic->eid = 0;
     1.9  		lsapic_nbr++;
    1.10  	} else if (lsapic->flags.enabled) {
    1.11  		printk("DISABLE lsapic entry: 0x%lx\n", (u64)lsapic);
    1.12  		lsapic->flags.enabled = 0;
    1.13 +		lsapic->id = 0;
    1.14 +		lsapic->eid = 0;
    1.15  	}
    1.16  	return 0;
    1.17  }
     2.1 --- a/xen/arch/ia64/xen/vcpu.c	Tue Aug 08 14:38:10 2006 -0600
     2.2 +++ b/xen/arch/ia64/xen/vcpu.c	Tue Aug 08 14:40:57 2006 -0600
     2.3 @@ -763,12 +763,8 @@ UINT64 vcpu_deliverable_timer(VCPU *vcpu
     2.4  
     2.5  IA64FAULT vcpu_get_lid(VCPU *vcpu, UINT64 *pval)
     2.6  {
     2.7 -	/* Use real LID for domain0 until vIOSAPIC is present.
     2.8 -	   Use EID=0, ID=vcpu_id for domU.  */
     2.9 -	if (vcpu->domain == dom0)
    2.10 -		*pval = ia64_getreg(_IA64_REG_CR_LID);
    2.11 -	else
    2.12 -		*pval = vcpu->vcpu_id << 24;
    2.13 +	/* Use EID=0, ID=vcpu_id.  */
    2.14 +	*pval = vcpu->vcpu_id << 24;
    2.15  	return IA64_NO_FAULT;
    2.16  }
    2.17