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:
parent
2956a3511c
commit
239d1fc04e
@ -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. */
|
||||||
|
Loading…
Reference in New Issue
Block a user