direct-io.hg

changeset 12409:01b257e72d5e

[IA64] Revert PAL_VM_SUMMARY and PAL_VM_INFO handling for VTI domain

Use info from call on physical CPU and only modify virtualized fields.

Signed-off-by: Anthony Xu <anthony.xu@intel.com>
author awilliam@xenbuild.aw
date Sun Oct 29 11:05:53 2006 -0700 (2006-10-29)
parents cf05aabe6e65
children 5cd95a6f8412
files xen/arch/ia64/xen/fw_emul.c
line diff
     1.1 --- a/xen/arch/ia64/xen/fw_emul.c	Wed Oct 25 15:29:00 2006 -0600
     1.2 +++ b/xen/arch/ia64/xen/fw_emul.c	Sun Oct 29 11:05:53 2006 -0700
     1.3 @@ -218,7 +218,19 @@ xen_pal_emulator(unsigned long index, u6
     1.4  		status = ia64_pal_cache_summary(&r9,&r10);
     1.5  		break;
     1.6  	    case PAL_VM_SUMMARY:
     1.7 -	        {
     1.8 +		if (VMX_DOMAIN(current)) {
     1.9 +			pal_vm_info_1_u_t v1;
    1.10 +			pal_vm_info_2_u_t v2;
    1.11 +			status = ia64_pal_vm_summary((pal_vm_info_1_u_t *)&v1,
    1.12 +			                             (pal_vm_info_2_u_t *)&v2);
    1.13 +			v1.pal_vm_info_1_s.max_itr_entry = NITRS - 1;
    1.14 +			v1.pal_vm_info_1_s.max_dtr_entry = NDTRS - 1;
    1.15 +			v2.pal_vm_info_2_s.impl_va_msb -= 1;
    1.16 +			v2.pal_vm_info_2_s.rid_size =
    1.17 +				current->domain->arch.rid_bits;
    1.18 +			r9 = v1.pvi1_val;
    1.19 +			r10 = v2.pvi2_val;
    1.20 +		} else {
    1.21  			/* Use xen-specific values.
    1.22  			   hash_tag_id is somewhat random! */
    1.23  			static const pal_vm_info_1_u_t v1 =
    1.24 @@ -242,14 +254,18 @@ xen_pal_emulator(unsigned long index, u6
    1.25  			v2.pvi2_val = 0;
    1.26  			v2.pal_vm_info_2_s.rid_size =
    1.27  				current->domain->arch.rid_bits;
    1.28 -			v2.pal_vm_info_2_s.impl_va_msb =
    1.29 -				VMX_DOMAIN(current) ? GUEST_IMPL_VA_MSB : 50;
    1.30 +			v2.pal_vm_info_2_s.impl_va_msb = 50;
    1.31  			r9 = v1.pvi1_val;
    1.32  			r10 = v2.pvi2_val;
    1.33  			status = PAL_STATUS_SUCCESS;
    1.34  		}
    1.35  		break;
    1.36  	    case PAL_VM_INFO:
    1.37 +		if (VMX_DOMAIN(current)) {
    1.38 +			status = ia64_pal_vm_info(in1, in2, 
    1.39 +			                          (pal_tc_info_u_t *)&r9, &r10);
    1.40 +			break;
    1.41 +		}
    1.42  #ifdef VHPT_GLOBAL
    1.43  		if (in1 == 0 && in2 == 2) {
    1.44  			/* Level 1: VHPT  */