xen: don't worry about preempt during xen_irq_enable()

When enabling interrupts, we don't need to worry about preemption,
because we either enter with interrupts disabled - so no preemption -
or the caller is confused and is re-enabling interrupts on some
indeterminate processor.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
Jeremy Fitzhardinge 2008-05-26 23:31:05 +01:00 committed by Thomas Gleixner
parent 2956a3511c
commit 239d1fc04e

View File

@ -235,13 +235,13 @@ static void xen_irq_enable(void)
{ {
struct vcpu_info *vcpu; struct vcpu_info *vcpu;
/* There's a one instruction preempt window here. We need to /* We don't need to worry about being preempted here, since
make sure we're don't switch CPUs between getting the vcpu either a) interrupts are disabled, so no preemption, or b)
pointer and updating the mask. */ the caller is confused and is trying to re-enable interrupts
preempt_disable(); on an indeterminate processor. */
vcpu = x86_read_percpu(xen_vcpu); vcpu = x86_read_percpu(xen_vcpu);
vcpu->evtchn_upcall_mask = 0; vcpu->evtchn_upcall_mask = 0;
preempt_enable_no_resched();
/* Doesn't matter if we get preempted here, because any /* Doesn't matter if we get preempted here, because any
pending event will get dealt with anyway. */ pending event will get dealt with anyway. */