Skip to content

Commit fb07b8f

Browse files
lvjianmin-loongsonMarc Zyngier
authored andcommitted
irqchip/loongson-eiointc: Fix irq affinity setting during resume
The hierarchy of PCH PIC, PCH PCI MSI and EIONTC is as following: PCH PIC ------->| |---->EIOINTC PCH PCI MSI --->| so the irq_data list of irq_desc for IRQs on PCH PIC and PCH PCI MSI is like this: irq_desc->irq_data(domain: PCH PIC)->parent_data(domain: EIOINTC) irq_desc->irq_data(domain: PCH PCI MSI)->parent_data(domain: EIOINTC) In eiointc_resume(), the irq_data passed into eiointc_set_irq_affinity() should be matched to EIOINTC domain instead of PCH PIC or PCH PCI MSI domain, so fix it. Fixes: a90335c ("irqchip/loongson-eiointc: Add suspend/resume support") Reported-by: yangqiming <yangqiming@loongson.cn> Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20230614115936.5950-6-lvjianmin@loongson.cn
1 parent e01f988 commit fb07b8f

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/irqchip/irq-loongson-eiointc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ static void eiointc_resume(void)
314314
desc = irq_resolve_mapping(eiointc_priv[i]->eiointc_domain, j);
315315
if (desc && desc->handle_irq && desc->handle_irq != handle_bad_irq) {
316316
raw_spin_lock(&desc->lock);
317-
irq_data = &desc->irq_data;
317+
irq_data = irq_domain_get_irq_data(eiointc_priv[i]->eiointc_domain, irq_desc_get_irq(desc));
318318
eiointc_set_irq_affinity(irq_data, irq_data->common->affinity, 0);
319319
raw_spin_unlock(&desc->lock);
320320
}

0 commit comments

Comments
 (0)