This is a note to let you know that I've just added the patch titled irqchip/loongson-pch-pic: Fix pch_pic_acpi_init calling to the 6.2-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: irqchip-loongson-pch-pic-fix-pch_pic_acpi_init-calling.patch and it can be found in the queue-6.2 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 48ce2d722f7f108f27bedddf54bee3423a57ce57 Mon Sep 17 00:00:00 2001 From: Jianmin Lv <lvjianmin@xxxxxxxxxxx> Date: Fri, 7 Apr 2023 16:34:53 +0800 Subject: irqchip/loongson-pch-pic: Fix pch_pic_acpi_init calling From: Jianmin Lv <lvjianmin@xxxxxxxxxxx> commit 48ce2d722f7f108f27bedddf54bee3423a57ce57 upstream. For dual-bridges scenario, pch_pic_acpi_init() will be called in following path: cpuintc_acpi_init acpi_cascade_irqdomain_init(in cpuintc driver) acpi_table_parse_madt eiointc_parse_madt eiointc_acpi_init /* this will be called two times correspondingto parsing two eiointc entries in MADT under dual-bridges scenario*/ acpi_cascade_irqdomain_init(in eiointc driver) acpi_table_parse_madt pch_pic_parse_madt pch_pic_acpi_init /* this will be called depend on valid parent IRQ domain handle for one or two times corresponding to parsing two pchpic entries in MADT druring calling eiointc_acpi_init() under dual-bridges scenario*/ During the first eiointc_acpi_init() calling, the pch_pic_acpi_init() will be called just one time since only one valid parent IRQ domain handle will be found for current eiointc IRQ domain. During the second eiointc_acpi_init() calling, the pch_pic_acpi_init() will be called two times since two valid parent IRQ domain handles will be found. So in pch_pic_acpi_init(), we must have a reasonable way to prevent from creating second same pch_pic IRQ domain. The patch matches gsi base information in created pch_pic IRQ domains to check if the target domain has been created to avoid the bug mentioned above. Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Jianmin Lv <lvjianmin@xxxxxxxxxxx> Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx> Link: https://lore.kernel.org/r/20230407083453.6305-6-lvjianmin@xxxxxxxxxxx Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/irqchip/irq-loongson-pch-pic.c | 3 +++ 1 file changed, 3 insertions(+) --- a/drivers/irqchip/irq-loongson-pch-pic.c +++ b/drivers/irqchip/irq-loongson-pch-pic.c @@ -403,6 +403,9 @@ int __init pch_pic_acpi_init(struct irq_ int ret, vec_base; struct fwnode_handle *domain_handle; + if (find_pch_pic(acpi_pchpic->gsi_base) >= 0) + return 0; + vec_base = acpi_pchpic->gsi_base - GSI_MIN_PCH_IRQ; domain_handle = irq_domain_alloc_fwnode(&acpi_pchpic->address); Patches currently in stable-queue which might be from lvjianmin@xxxxxxxxxxx are queue-6.2/irqchip-loongson-eiointc-fix-incorrect-use-of-acpi_get_vec_parent.patch queue-6.2/irqchip-loongson-eiointc-fix-returned-value-on-parsing-madt.patch queue-6.2/irqchip-loongson-pch-pic-fix-registration-of-syscore_ops.patch queue-6.2/irqchip-loongson-eiointc-fix-registration-of-syscore_ops.patch queue-6.2/irqchip-loongson-pch-pic-fix-pch_pic_acpi_init-calling.patch