]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
irqchip/riscv-imsic: Set irq_set_affinity() for IMSIC base
authorAndrew Jones <ajones@ventanamicro.com>
Mon, 17 Feb 2025 08:56:47 +0000 (14:26 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 May 2025 09:13:18 +0000 (11:13 +0200)
commit77e62be1a8b4dfabe577cd1c75406a05ec5c6458
tree9f6a450b55677506aaf1f1164e4b9f897ed5ec6d
parent4bb1208d74658fad55b9e90ddb1e45e292a6eab4
irqchip/riscv-imsic: Set irq_set_affinity() for IMSIC base

[ Upstream commit 999f458c1771354371ba367dd84f55f9a62a4233 ]

The IMSIC driver assigns the IMSIC domain specific imsic_irq_set_affinity()
callback to the per device leaf MSI domain. That's a layering violation as
it is called with the leaf domain data and not with the IMSIC domain
data. This prevents moving the IMSIC driver to the common MSI library which
uses the generic msi_domain_set_affinity() callback for device MSI domains.

Instead of using imsic_irq_set_affinity() for leaf MSI domains, use
imsic_irq_set_affinity() for the non-leaf IMSIC base domain and use
irq_chip_set_affinity_parent() for leaf MSI domains.

[ tglx: Massaged change log ]

Signed-off-by: Andrew Jones <ajones@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20250217085657.789309-2-apatel@ventanamicro.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/irqchip/irq-riscv-imsic-platform.c