ia64/xen-unstable

changeset 6468:0c1f966af47e

Temporary patch to return dom0 stability
author djm@kirby.fc.hp.com
date Thu Sep 08 07:24:08 2005 -0600 (2005-09-08)
parents b2312c14f144
children 10b1d30d3f66
files xen/arch/ia64/xen/vcpu.c
line diff
     1.1 --- a/xen/arch/ia64/xen/vcpu.c	Wed Sep 07 10:51:28 2005 -0600
     1.2 +++ b/xen/arch/ia64/xen/vcpu.c	Thu Sep 08 07:24:08 2005 -0600
     1.3 @@ -1,11 +1,17 @@
     1.4  /*
     1.5   * Virtualized CPU functions
     1.6   *
     1.7 - * Copyright (C) 2004 Hewlett-Packard Co.
     1.8 + * Copyright (C) 2004-2005 Hewlett-Packard Co.
     1.9   *	Dan Magenheimer (dan.magenheimer@hp.com)
    1.10   *
    1.11   */
    1.12  
    1.13 +#if 1
    1.14 +// TEMPORARY PATCH for match_dtlb uses this, can be removed later
    1.15 +// FIXME SMP
    1.16 +int in_tpa = 0;
    1.17 +#endif
    1.18 +
    1.19  #include <linux/sched.h>
    1.20  #include <public/arch-ia64.h>
    1.21  #include <asm/ia64_int.h>
    1.22 @@ -1317,8 +1323,10 @@ IA64FAULT vcpu_translate(VCPU *vcpu, UIN
    1.23  	/* check 1-entry TLB */
    1.24  	if ((trp = match_dtlb(vcpu,address))) {
    1.25  		dtlb_translate_count++;
    1.26 -		//*pteval = trp->page_flags;
    1.27 -		*pteval = vcpu->arch.dtlb_pte;
    1.28 +		if (vcpu->domain==dom0 && !in_tpa) *pteval = trp->page_flags;
    1.29 +		else *pteval = vcpu->arch.dtlb_pte;
    1.30 +		printf("DTLB MATCH... NEW, DOM%s, %s\n", vcpu->domain==dom0?
    1.31 +			"0":"U", in_tpa?"vcpu_tpa":"ia64_do_page_fault");
    1.32  		*itir = trp->itir;
    1.33  		return IA64_NO_FAULT;
    1.34  	}
    1.35 @@ -1369,7 +1377,9 @@ IA64FAULT vcpu_tpa(VCPU *vcpu, UINT64 va
    1.36  	UINT64 pteval, itir, mask;
    1.37  	IA64FAULT fault;
    1.38  
    1.39 +	in_tpa = 1;
    1.40  	fault = vcpu_translate(vcpu, vadr, 1, &pteval, &itir);
    1.41 +	in_tpa = 0;
    1.42  	if (fault == IA64_NO_FAULT)
    1.43  	{
    1.44  		mask = itir_mask(itir);