diff options
Diffstat (limited to 'arch/ia64/kernel/iosapic.c')
-rw-r--r-- | arch/ia64/kernel/iosapic.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c index 920983545ad6..b0f9afebb146 100644 --- a/arch/ia64/kernel/iosapic.c +++ b/arch/ia64/kernel/iosapic.c | |||
@@ -398,7 +398,7 @@ iosapic_unmask_level_irq (struct irq_data *data) | |||
398 | int do_unmask_irq = 0; | 398 | int do_unmask_irq = 0; |
399 | 399 | ||
400 | irq_complete_move(irq); | 400 | irq_complete_move(irq); |
401 | if (unlikely(irq_desc[irq].status & IRQ_MOVE_PENDING)) { | 401 | if (unlikely(irqd_is_setaffinity_pending(data))) { |
402 | do_unmask_irq = 1; | 402 | do_unmask_irq = 1; |
403 | mask_irq(data); | 403 | mask_irq(data); |
404 | } else | 404 | } else |
@@ -408,7 +408,7 @@ iosapic_unmask_level_irq (struct irq_data *data) | |||
408 | iosapic_eoi(rte->iosapic->addr, vec); | 408 | iosapic_eoi(rte->iosapic->addr, vec); |
409 | 409 | ||
410 | if (unlikely(do_unmask_irq)) { | 410 | if (unlikely(do_unmask_irq)) { |
411 | move_masked_irq(irq); | 411 | irq_move_masked_irq(data); |
412 | unmask_irq(data); | 412 | unmask_irq(data); |
413 | } | 413 | } |
414 | } | 414 | } |
@@ -449,10 +449,8 @@ iosapic_startup_edge_irq (struct irq_data *data) | |||
449 | static void | 449 | static void |
450 | iosapic_ack_edge_irq (struct irq_data *data) | 450 | iosapic_ack_edge_irq (struct irq_data *data) |
451 | { | 451 | { |
452 | unsigned int irq = data->irq; | 452 | irq_complete_move(data->irq); |
453 | 453 | irq_move_irq(data); | |
454 | irq_complete_move(irq); | ||
455 | move_native_irq(irq); | ||
456 | } | 454 | } |
457 | 455 | ||
458 | #define iosapic_enable_edge_irq unmask_irq | 456 | #define iosapic_enable_edge_irq unmask_irq |