hc
2024-11-01 2f529f9b558ca1c1bd74be7437a84e4711743404
kernel/drivers/irqchip/exynos-combiner.c
....@@ -24,7 +24,7 @@
2424
2525 #define IRQ_IN_COMBINER 8
2626
27
-static DEFINE_SPINLOCK(irq_controller_lock);
27
+static DEFINE_HARD_SPINLOCK(irq_controller_lock);
2828
2929 struct combiner_chip_data {
3030 unsigned int hwirq_offset;
....@@ -71,9 +71,9 @@
7171
7272 chained_irq_enter(chip, desc);
7373
74
- spin_lock(&irq_controller_lock);
74
+ raw_spin_lock(&irq_controller_lock);
7575 status = readl_relaxed(chip_data->base + COMBINER_INT_STATUS);
76
- spin_unlock(&irq_controller_lock);
76
+ raw_spin_unlock(&irq_controller_lock);
7777 status &= chip_data->irq_mask;
7878
7979 if (status == 0)
....@@ -113,6 +113,7 @@
113113 #ifdef CONFIG_SMP
114114 .irq_set_affinity = combiner_set_affinity,
115115 #endif
116
+ .flags = IRQCHIP_PIPELINE_SAFE,
116117 };
117118
118119 static void __init combiner_cascade_irq(struct combiner_chip_data *combiner_data,