aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/xen/events/events_base.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index cb7138c97c69..71d49a95f8c0 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -487,7 +487,8 @@ static void eoi_pirq(struct irq_data *data)
487 if (!VALID_EVTCHN(evtchn)) 487 if (!VALID_EVTCHN(evtchn))
488 return; 488 return;
489 489
490 if (unlikely(irqd_is_setaffinity_pending(data))) { 490 if (unlikely(irqd_is_setaffinity_pending(data)) &&
491 likely(!irqd_irq_disabled(data))) {
491 int masked = test_and_set_mask(evtchn); 492 int masked = test_and_set_mask(evtchn);
492 493
493 clear_evtchn(evtchn); 494 clear_evtchn(evtchn);
@@ -1370,7 +1371,8 @@ static void ack_dynirq(struct irq_data *data)
1370 if (!VALID_EVTCHN(evtchn)) 1371 if (!VALID_EVTCHN(evtchn))
1371 return; 1372 return;
1372 1373
1373 if (unlikely(irqd_is_setaffinity_pending(data))) { 1374 if (unlikely(irqd_is_setaffinity_pending(data)) &&
1375 likely(!irqd_irq_disabled(data))) {
1374 int masked = test_and_set_mask(evtchn); 1376 int masked = test_and_set_mask(evtchn);
1375 1377
1376 clear_evtchn(evtchn); 1378 clear_evtchn(evtchn);