mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
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
This commit is contained in:
@@ -116,6 +116,16 @@ static struct syscore aplic_syscore = {
|
||||
.ops = &aplic_syscore_ops,
|
||||
};
|
||||
|
||||
static bool aplic_syscore_registered __ro_after_init;
|
||||
|
||||
static void aplic_syscore_init(void)
|
||||
{
|
||||
if (!aplic_syscore_registered) {
|
||||
register_syscore(&aplic_syscore);
|
||||
aplic_syscore_registered = true;
|
||||
}
|
||||
}
|
||||
|
||||
static int aplic_pm_notifier(struct notifier_block *nb, unsigned long action, void *data)
|
||||
{
|
||||
struct aplic_priv *priv = container_of(nb, struct aplic_priv, genpd_nb);
|
||||
@@ -372,18 +382,21 @@ static int aplic_probe(struct platform_device *pdev)
|
||||
rc = aplic_msi_setup(dev, regs);
|
||||
else
|
||||
rc = aplic_direct_setup(dev, regs);
|
||||
if (rc)
|
||||
|
||||
if (rc) {
|
||||
dev_err_probe(dev, rc, "failed to setup APLIC in %s mode\n",
|
||||
msi_mode ? "MSI" : "direct");
|
||||
else
|
||||
register_syscore(&aplic_syscore);
|
||||
return rc;
|
||||
}
|
||||
|
||||
aplic_syscore_init();
|
||||
|
||||
#ifdef CONFIG_ACPI
|
||||
if (!acpi_disabled)
|
||||
acpi_dev_clear_dependencies(ACPI_COMPANION(dev));
|
||||
#endif
|
||||
|
||||
return rc;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct of_device_id aplic_match[] = {
|
||||
|
||||
Reference in New Issue
Block a user