xen/events: Don't move disabled irqs
[pandora-kernel.git] / drivers / xen / events.c
index 7131973..336c9c8 100644 (file)
@@ -516,7 +516,8 @@ static void eoi_pirq(struct irq_data *data)
        if (!VALID_EVTCHN(evtchn))
                return;
 
-       if (unlikely(irqd_is_setaffinity_pending(data))) {
+       if (unlikely(irqd_is_setaffinity_pending(data)) &&
+           likely(!irqd_irq_disabled(data))) {
                int masked = test_and_set_mask(evtchn);
 
                clear_evtchn(evtchn);
@@ -1446,7 +1447,8 @@ static void ack_dynirq(struct irq_data *data)
        if (!VALID_EVTCHN(evtchn))
                return;
 
-       if (unlikely(irqd_is_setaffinity_pending(data))) {
+       if (unlikely(irqd_is_setaffinity_pending(data)) &&
+           likely(!irqd_irq_disabled(data))) {
                int masked = test_and_set_mask(evtchn);
 
                clear_evtchn(evtchn);