Commit cde56261 authored by Jianmin Lv's avatar Jianmin Lv Committed by Hongchen Zhang
Browse files

irqchip/loongson: Fix syscore ops registration

LoongArch inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I6ONTH



--------------------------------

In irq-loongson-eiointc and irq-loongson-pch-pic, syscore
ops is registrated two times, which will break the syscore
ops list.

Signed-off-by: default avatarJianmin Lv <lvjianmin@loongson.cn>
Change-Id: I87d4af80afbe5397c25a8d799e844528650c9e2c
parent d6b1585a
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -429,10 +429,12 @@ int __init eiointc_acpi_init(struct irq_domain *parent,
	parent_irq = irq_create_mapping(parent, acpi_eiointc->cascade);
	irq_set_chained_handler_and_data(parent_irq, eiointc_irq_dispatch, priv);

	if (nr_pics == 1) {
		register_syscore_ops(&eiointc_syscore_ops);
		cpuhp_setup_state_nocalls(CPUHP_AP_IRQ_LOONGARCH_STARTING,
				  "irqchip/loongarch/intc:starting",
				  eiointc_router_init, NULL);
	}

	if (cpu_has_flatmode)
		node = cpu_to_node(node * CORES_PER_EIO_NODE);
+2 −1
Original line number Diff line number Diff line
@@ -305,6 +305,7 @@ static int pch_pic_init(phys_addr_t addr, unsigned long size, int vec_base,
	pch_pic_handle[nr_pics] = domain_handle;
	pch_pic_priv[nr_pics++] = priv;

	if (nr_pics == 1)
		register_syscore_ops(&pch_pic_syscore_ops);

	return 0;