Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

+17 -4
+17 -4
drivers/irqchip/irq-riscv-aplic-main.c
··· 116 116 .ops = &aplic_syscore_ops, 117 117 }; 118 118 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 + 119 129 static int aplic_pm_notifier(struct notifier_block *nb, unsigned long action, void *data) 120 130 { 121 131 struct aplic_priv *priv = container_of(nb, struct aplic_priv, genpd_nb); ··· 382 372 rc = aplic_msi_setup(dev, regs); 383 373 else 384 374 rc = aplic_direct_setup(dev, regs); 385 - if (rc) 375 + 376 + if (rc) { 386 377 dev_err_probe(dev, rc, "failed to setup APLIC in %s mode\n", 387 378 msi_mode ? "MSI" : "direct"); 388 - else 389 - register_syscore(&aplic_syscore); 379 + return rc; 380 + } 381 + 382 + aplic_syscore_init(); 390 383 391 384 #ifdef CONFIG_ACPI 392 385 if (!acpi_disabled) 393 386 acpi_dev_clear_dependencies(ACPI_COMPANION(dev)); 394 387 #endif 395 388 396 - return rc; 389 + return 0; 397 390 } 398 391 399 392 static const struct of_device_id aplic_match[] = {