aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2022-06-13 09:10:49 +0200
committerThomas Gleixner <tglx@linutronix.de>2022-06-13 09:10:49 +0200
commit6872fcac7158c3b3728a2ec1ea771ade0e61ddd5 (patch)
treed7df6acbca838aa85962b0544a45cf13b0128362 /kernel
parentLinux 5.19-rc1 (diff)
parentirqchip/loongson-liointc: Use architecture register to get coreid (diff)
downloadlinux-dev-6872fcac7158c3b3728a2ec1ea771ade0e61ddd5.tar.xz
linux-dev-6872fcac7158c3b3728a2ec1ea771ade0e61ddd5.zip
Merge tag 'irqchip-fixes-5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgent
Pull irqchip/genirq fixes from Marc Zyngier: - Invoke runtime PM for chained interrupts, aligning the behaviour with that of 'normal' interrupts - A flurry of of_node refcounting fixes - A fix for the recently merged loongarch that broke UP MIPS - A configuration fix for the Xilinx interrupt controller - Yet another new compat string for the Uniphier interrupt controller Link: https://lore.kernel.org/lkml/20220610083628.1205136-1-maz@kernel.org
Diffstat (limited to 'kernel')
-rw-r--r--kernel/irq/chip.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index e6b8e564b37f..886789dcee43 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -1006,8 +1006,10 @@ __irq_do_set_handler(struct irq_desc *desc, irq_flow_handler_t handle,
if (desc->irq_data.chip != &no_irq_chip)
mask_ack_irq(desc);
irq_state_set_disabled(desc);
- if (is_chained)
+ if (is_chained) {
desc->action = NULL;
+ WARN_ON(irq_chip_pm_put(irq_desc_get_irq_data(desc)));
+ }
desc->depth = 1;
}
desc->handle_irq = handle;
@@ -1033,6 +1035,7 @@ __irq_do_set_handler(struct irq_desc *desc, irq_flow_handler_t handle,
irq_settings_set_norequest(desc);
irq_settings_set_nothread(desc);
desc->action = &chained_action;
+ WARN_ON(irq_chip_pm_get(irq_desc_get_irq_data(desc)));
irq_activate_and_startup(desc, IRQ_RESEND);
}
}