diff options
| -rw-r--r-- | drivers/xen/events/events_base.c | 6 |
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); |
