Skip to content

Commit be2e375

Browse files
committed
Merge tag 'irq-urgent-2026-03-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq fixes from Ingo Molnar: "Two fixes for the riscv-aplic irqchip driver: - Fix probing dependency bug on probing failure - Fix double register_syscore() bug" * tag 'irq-urgent-2026-03-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/riscv-aplic: Register syscore operations only once irqchip/riscv-aplic: Do not clear ACPI dependencies on probe failure
2 parents 9a48d4a + b330fbf commit be2e375

1 file changed

Lines changed: 17 additions & 4 deletions

File tree

drivers/irqchip/irq-riscv-aplic-main.c

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,16 @@ static struct syscore aplic_syscore = {
116116
.ops = &aplic_syscore_ops,
117117
};
118118

119+
static bool aplic_syscore_registered __ro_after_init;
120+
121+
static void aplic_syscore_init(void)
122+
{
123+
if (!aplic_syscore_registered) {
124+
register_syscore(&aplic_syscore);
125+
aplic_syscore_registered = true;
126+
}
127+
}
128+
119129
static int aplic_pm_notifier(struct notifier_block *nb, unsigned long action, void *data)
120130
{
121131
struct aplic_priv *priv = container_of(nb, struct aplic_priv, genpd_nb);
@@ -372,18 +382,21 @@ static int aplic_probe(struct platform_device *pdev)
372382
rc = aplic_msi_setup(dev, regs);
373383
else
374384
rc = aplic_direct_setup(dev, regs);
375-
if (rc)
385+
386+
if (rc) {
376387
dev_err_probe(dev, rc, "failed to setup APLIC in %s mode\n",
377388
msi_mode ? "MSI" : "direct");
378-
else
379-
register_syscore(&aplic_syscore);
389+
return rc;
390+
}
391+
392+
aplic_syscore_init();
380393

381394
#ifdef CONFIG_ACPI
382395
if (!acpi_disabled)
383396
acpi_dev_clear_dependencies(ACPI_COMPANION(dev));
384397
#endif
385398

386-
return rc;
399+
return 0;
387400
}
388401

389402
static const struct of_device_id aplic_match[] = {

0 commit comments

Comments
 (0)