direct-io.hg

changeset 5531:e7981e581c6c

bitkeeper revision 1.1713.2.18 (42b8744bIGngr2TXaEsslGtXBaQ79g)

Fix and re-enable hyperprivop for ptc.ga (slow path only for now)
Signed-off-by: Dan Magenheimer <dan.magenheimer@hp.com>
author djm@kirby.fc.hp.com
date Tue Jun 21 20:10:51 2005 +0000 (2005-06-21)
parents fd4a89825472
children 30f3fdaa5c1f
files xen/arch/ia64/hyperprivop.S xen/arch/ia64/privop.c
line diff
     1.1 --- a/xen/arch/ia64/hyperprivop.S	Tue Jun 21 19:37:26 2005 +0000
     1.2 +++ b/xen/arch/ia64/hyperprivop.S	Tue Jun 21 20:10:51 2005 +0000
     1.3 @@ -109,6 +109,10 @@ 1:	// when we get to here r20=~=interrup
     1.4  	cmp.eq p7,p6=XEN_HYPER_GET_RR,r17
     1.5  (p7)	br.sptk.many hyper_get_rr;;
     1.6  
     1.7 +	// HYPERPRIVOP_PTC_GA?
     1.8 +	cmp.eq p7,p6=XEN_HYPER_PTC_GA,r17
     1.9 +(p7)	br.sptk.many hyper_ptc_ga;;
    1.10 +
    1.11  	// if not one of the above, give up for now and do it the slow way
    1.12  	br.sptk.many dispatch_break_fault ;;
    1.13  
    1.14 @@ -909,3 +913,7 @@ 1:	mov r24=cr.ipsr
    1.15  	rfi
    1.16  	;;
    1.17  END(hyper_set_rr)
    1.18 +
    1.19 +ENTRY(hyper_ptc_ga)
    1.20 +	br.spnt.many dispatch_break_fault ;;
    1.21 +END(hyper_ptc_ga)
     2.1 --- a/xen/arch/ia64/privop.c	Tue Jun 21 19:37:26 2005 +0000
     2.2 +++ b/xen/arch/ia64/privop.c	Tue Jun 21 20:10:51 2005 +0000
     2.3 @@ -832,10 +832,8 @@ ia64_hyperprivop(unsigned long iim, REGS
     2.4  		regs->r8 = val;
     2.5  		return 1;
     2.6  	    case HYPERPRIVOP_PTC_GA:
     2.7 -		// FIXME: this doesn't seem to work yet, turned off
     2.8 -		//(void)vcpu_ptc_ga(v,regs->r8,regs->r9);
     2.9 -		//return 1;
    2.10 -		break;
    2.11 +		(void)vcpu_ptc_ga(v,regs->r8,(1L << ((regs->r9 & 0xfc) >> 2)));
    2.12 +		return 1;
    2.13  	    case HYPERPRIVOP_ITR_D:
    2.14  		(void)vcpu_get_itir(v,&itir);
    2.15  		(void)vcpu_get_ifa(v,&ifa);