summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/irq.h7
-rw-r--r--kernel/irq/migration.c5
2 files changed, 7 insertions, 5 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h
index 65916a305f3d..4e66378f290b 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -551,7 +551,12 @@ extern int irq_affinity_online_cpu(unsigned int cpu);
551#endif 551#endif
552 552
553#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ) 553#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ)
554void irq_move_irq(struct irq_data *data); 554void __irq_move_irq(struct irq_data *data);
555static inline void irq_move_irq(struct irq_data *data)
556{
557 if (unlikely(irqd_is_setaffinity_pending(data)))
558 __irq_move_irq(data);
559}
555void irq_move_masked_irq(struct irq_data *data); 560void irq_move_masked_irq(struct irq_data *data);
556void irq_force_complete_move(struct irq_desc *desc); 561void irq_force_complete_move(struct irq_desc *desc);
557#else 562#else
diff --git a/kernel/irq/migration.c b/kernel/irq/migration.c
index 8b8cecd18cce..def48589ea48 100644
--- a/kernel/irq/migration.c
+++ b/kernel/irq/migration.c
@@ -91,7 +91,7 @@ void irq_move_masked_irq(struct irq_data *idata)
91 cpumask_clear(desc->pending_mask); 91 cpumask_clear(desc->pending_mask);
92} 92}
93 93
94void irq_move_irq(struct irq_data *idata) 94void __irq_move_irq(struct irq_data *idata)
95{ 95{
96 bool masked; 96 bool masked;
97 97
@@ -102,9 +102,6 @@ void irq_move_irq(struct irq_data *idata)
102 */ 102 */
103 idata = irq_desc_get_irq_data(irq_data_to_desc(idata)); 103 idata = irq_desc_get_irq_data(irq_data_to_desc(idata));
104 104
105 if (likely(!irqd_is_setaffinity_pending(idata)))
106 return;
107
108 if (unlikely(irqd_irq_disabled(idata))) 105 if (unlikely(irqd_irq_disabled(idata)))
109 return; 106 return;
110 107