ia64/xen-unstable

changeset 5453:a514af3f6017

bitkeeper revision 1.1709.1.5 (42af164bHIB572FEONmRsv7duDIvzw)

Fix broken VTI due to previous multi-domain prep patch

Signed-off-by Kevin Tian <Kevin.tian@intel.com>
author djm@kirby.fc.hp.com
date Tue Jun 14 17:39:23 2005 +0000 (2005-06-14)
parents a8d6aae1c5ac
children 9947f23ecc75
files xen/arch/ia64/domain.c xen/arch/ia64/vmx_process.c
line diff
     1.1 --- a/xen/arch/ia64/domain.c	Tue Jun 14 17:33:23 2005 +0000
     1.2 +++ b/xen/arch/ia64/domain.c	Tue Jun 14 17:39:23 2005 +0000
     1.3 @@ -230,19 +230,6 @@ void arch_do_createdomain(struct vcpu *v
     1.4  	d->xen_vastart = 0xf000000000000000;
     1.5  	d->xen_vaend = 0xf300000000000000;
     1.6  	d->arch.breakimm = 0x1000;
     1.7 -
     1.8 -	d->arch.mm = xmalloc(struct mm_struct);
     1.9 -	if (unlikely(!d->arch.mm)) {
    1.10 -		printk("Can't allocate mm_struct for domain %d\n",d->domain_id);
    1.11 -		return -ENOMEM;
    1.12 -	}
    1.13 -	memset(d->arch.mm, 0, sizeof(*d->arch.mm));
    1.14 -	d->arch.mm->pgd = pgd_alloc(d->arch.mm);
    1.15 -	if (unlikely(!d->arch.mm->pgd)) {
    1.16 -		printk("Can't allocate pgd for domain %d\n",d->domain_id);
    1.17 -		return -ENOMEM;
    1.18 -	}
    1.19 -}
    1.20  }
    1.21  #else // CONFIG_VTI
    1.22  void arch_do_createdomain(struct vcpu *v)
    1.23 @@ -366,21 +353,22 @@ void new_thread(struct vcpu *v,
    1.24  	regs->cr_iip = start_pc;
    1.25  	regs->cr_ifs = 0; /* why? - matthewc */
    1.26  	regs->ar_fpsr = FPSR_DEFAULT;
    1.27 -	if (VMX_DOMAIN(ed)) {
    1.28 +	if (VMX_DOMAIN(v)) {
    1.29  		vmx_init_all_rr(v);
    1.30  	} else
    1.31  		init_all_rr(v);
    1.32 -	/* should this be regs->r28 in the non-VMX case? - matthewc */
    1.33 -	VMX_VPD(v,vgr[12]) = dom_fw_setup(d,saved_command_line,256L);  //FIXME
    1.34 +
    1.35  	if (VMX_DOMAIN(v)) {
    1.36 +		VMX_VPD(v,vgr[12]) = dom_fw_setup(d,saved_command_line,256L);
    1.37  		/* Virtual processor context setup */
    1.38  		VMX_VPD(v, vpsr) = IA64_PSR_BN;
    1.39  		VPD_CR(v, dcr) = 0;
    1.40  	} else {
    1.41 +		regs->r28 = dom_fw_setup(d,saved_command_line,256L);
    1.42  		v->vcpu_info->arch.banknum = 1;
    1.43 -		/* v->vcpu_info->arch.metaphysical_mode = 1;  why not? - matthewc */
    1.44 +		v->vcpu_info->arch.metaphysical_mode = 1;
    1.45 +		d->shared_info->arch.flags = (d == dom0) ? (SIF_INITDOMAIN|SIF_PRIVILEGED|SIF_BLK_BE_DOMAIN|SIF_NET_BE_DOMAIN|SIF_USB_BE_DOMAIN) : 0;
    1.46  	}
    1.47 -	/* d->shared_info->arch.flags = (d == dom0) ? (SIF_INITDOMAIN|SIF_PRIVILEGED|SIF_BLK_BE_DOMAIN|SIF_NET_BE_DOMAIN|SIF_USB_BE_DOMAIN) : 0;  shared_info not set yet? */
    1.48  }
    1.49  #else // CONFIG_VTI
    1.50  
     2.1 --- a/xen/arch/ia64/vmx_process.c	Tue Jun 14 17:33:23 2005 +0000
     2.2 +++ b/xen/arch/ia64/vmx_process.c	Tue Jun 14 17:39:23 2005 +0000
     2.3 @@ -116,7 +116,6 @@ vmx_ia64_handle_break (unsigned long ifa
     2.4  		    case FW_HYPERCALL_EFI_GET_TIME:
     2.5  			{
     2.6  			unsigned long *tv, *tc;
     2.7 -			fooefi();
     2.8  			vmx_vcpu_get_gr(v, 32, &tv);
     2.9  			vmx_vcpu_get_gr(v, 33, &tc);
    2.10  			printf("efi_get_time(%p,%p) called...",tv,tc);