ia64/xen-unstable

changeset 7143:f81e637e7741

Fix incorrect re-enablement of interrupts (found by Tristan Gingold)
author djm@kirby.fc.hp.com
date Fri Oct 07 09:37:41 2005 -0600 (2005-10-07)
parents 98fb7e03a886
children cbe6b4c4480f
files xen/arch/ia64/xen/vcpu.c
line diff
     1.1 --- a/xen/arch/ia64/xen/vcpu.c	Mon Oct 03 16:27:27 2005 -0600
     1.2 +++ b/xen/arch/ia64/xen/vcpu.c	Fri Oct 07 09:37:41 2005 -0600
     1.3 @@ -1043,9 +1043,10 @@ BOOLEAN vcpu_timer_expired(VCPU *vcpu)
     1.4  void vcpu_safe_set_itm(unsigned long val)
     1.5  {
     1.6  	unsigned long epsilon = 100;
     1.7 +	unsigned long flags;
     1.8  	UINT64 now = ia64_get_itc();
     1.9  
    1.10 -	local_irq_disable();
    1.11 +	local_irq_save(flags);
    1.12  	while (1) {
    1.13  //printf("*** vcpu_safe_set_itm: Setting itm to %lx, itc=%lx\n",val,now);
    1.14  		ia64_set_itm(val);
    1.15 @@ -1053,7 +1054,7 @@ void vcpu_safe_set_itm(unsigned long val
    1.16  		val = now + epsilon;
    1.17  		epsilon <<= 1;
    1.18  	}
    1.19 -	local_irq_enable();
    1.20 +	local_irq_restore(flags);
    1.21  }
    1.22  
    1.23  void vcpu_set_next_timer(VCPU *vcpu)