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)