X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fi386%2Fmach-xen%2Firqflags.c;h=9c39512d7548d18ae3ad7c677e333c744b3b6e9c;hb=refs%2Fheads%2Fvserver;hp=c990ca5d2f431eee54c2a655d795478c9f326cd0;hpb=76828883507a47dae78837ab5dec5a5b4513c667;p=linux-2.6.git diff --git a/arch/i386/mach-xen/irqflags.c b/arch/i386/mach-xen/irqflags.c index c990ca5d2..9c39512d7 100644 --- a/arch/i386/mach-xen/irqflags.c +++ b/arch/i386/mach-xen/irqflags.c @@ -40,7 +40,6 @@ void raw_local_irq_restore(unsigned long flags) preempt_enable(); } else preempt_enable_no_resched(); - } EXPORT_SYMBOL(raw_local_irq_restore); @@ -69,31 +68,36 @@ void raw_local_irq_enable(void) } EXPORT_SYMBOL(raw_local_irq_enable); -/* Cannot use preempt_enable() here as we would recurse in preempt_sched(). */ -int raw_irqs_disabled(void) +/* + * For spinlocks, etc.: + */ + +unsigned long __raw_local_irq_save(void) { struct vcpu_info *_vcpu; - int disabled; + unsigned long flags; preempt_disable(); _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; - disabled = (_vcpu->evtchn_upcall_mask != 0); + flags = _vcpu->evtchn_upcall_mask; + _vcpu->evtchn_upcall_mask = 1; preempt_enable_no_resched(); - return disabled; + + return flags; } -EXPORT_SYMBOL(raw_irqs_disabled); +EXPORT_SYMBOL(__raw_local_irq_save); -unsigned long __raw_local_irq_save(void) +/* Cannot use preempt_enable() here as we would recurse in preempt_sched(). */ +int raw_irqs_disabled(void) { struct vcpu_info *_vcpu; - unsigned long flags; + int disabled; preempt_disable(); _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; - flags = _vcpu->evtchn_upcall_mask; - _vcpu->evtchn_upcall_mask = 1; + disabled = (_vcpu->evtchn_upcall_mask != 0); preempt_enable_no_resched(); - return flags; + return disabled; } -EXPORT_SYMBOL(__raw_local_irq_save); +EXPORT_SYMBOL(raw_irqs_disabled);