* [PATCH] powerpc: pci-ioda: Fix the stale irq chip reference
@ 2026-08-19 17:58 Shivaprasad G Bhat
2026-08-24 18:49 ` Gautam Menghani
0 siblings, 1 reply; 2+ messages in thread
From: Shivaprasad G Bhat @ 2026-08-19 17:58 UTC (permalink / raw)
To: maddy, linuxppc-dev
Cc: tpearson, mpe, npiggin, chleroy, namcao, tglx, yury.norov, tiwai,
sbhat, wangruikang, linux-kernel
The commit f0ac60e6e311 ("powerpc/powernv/pci: Switch to use
msi_create_parent_irq_domain()") removed the legacy MSI irq chip
pnv_pci_msi_irq_chip but left behind the static definition of it and
its reference in is_pnv_opal_msi().
The KVM IRQ bypass for vfio devices is broken because the
comparision in is_pnv_opal_msi() fails on the comparision with
stale unused variable showing the below errors in dmesg.
kvmppc_set_passthru_irq_hv: Could not assign IRQ map for (X,Y)
kvmppc_set_passthru_irq (irq X, gsi Y) fails: -2
vfio-pci A:B:C.D irq bypass producer (eventfd Z) registration fails: -2
The patch removes the stale variable definition and fixes the
is_pnv_opal_msi() by comparing against the chip name prefix.
Fixes: f0ac60e6e311 ("powerpc/powernv/pci: Switch to use msi_create_parent_irq_domain()")
Cc: stable@kernel.org
Signed-off-by: Shivaprasad G Bhat <sbhat@linux.ibm.com>
---
arch/powerpc/platforms/powernv/pci-ioda.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
index 32ecbc46e74b..728a5610d167 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -1623,15 +1623,13 @@ int64_t pnv_opal_pci_msi_eoi(struct irq_data *d)
return opal_pci_msi_eoi(phb->opal_id, d->parent_data->hwirq);
}
-static struct irq_chip pnv_pci_msi_irq_chip;
-
/*
* Returns true iff chip is something that we could call
* pnv_opal_pci_msi_eoi for.
*/
bool is_pnv_opal_msi(struct irq_chip *chip)
{
- return chip == &pnv_pci_msi_irq_chip;
+ return chip && chip->name && str_has_prefix(chip->name, "PNV-");
}
EXPORT_SYMBOL_GPL(is_pnv_opal_msi);
@@ -1728,7 +1726,7 @@ static const struct msi_parent_ops pnv_msi_parent_ops = {
.chip_flags = MSI_CHIP_FLAG_SET_EOI,
.bus_select_token = DOMAIN_BUS_NEXUS,
.bus_select_mask = MATCH_PCI_MSI,
- .prefix = "PNV-",
+ .prefix = "PNV-", /* Note: is_pnv_opal_msi() uses this */
.init_dev_msi_info = pnv_init_dev_msi_info,
};
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [PATCH] powerpc: pci-ioda: Fix the stale irq chip reference
2026-08-19 17:58 [PATCH] powerpc: pci-ioda: Fix the stale irq chip reference Shivaprasad G Bhat
@ 2026-08-24 18:49 ` Gautam Menghani
0 siblings, 0 replies; 2+ messages in thread
From: Gautam Menghani @ 2026-08-24 18:49 UTC (permalink / raw)
To: Shivaprasad G Bhat
Cc: maddy, linuxppc-dev, tpearson, mpe, npiggin, chleroy, namcao,
tglx, yury.norov, tiwai, wangruikang, linux-kernel
On Wed, Aug 19, 2026 at 05:58:22PM +0000, Shivaprasad G Bhat wrote:
> The commit f0ac60e6e311 ("powerpc/powernv/pci: Switch to use
> msi_create_parent_irq_domain()") removed the legacy MSI irq chip
> pnv_pci_msi_irq_chip but left behind the static definition of it and
> its reference in is_pnv_opal_msi().
>
> The KVM IRQ bypass for vfio devices is broken because the
> comparision in is_pnv_opal_msi() fails on the comparision with
> stale unused variable showing the below errors in dmesg.
>
> kvmppc_set_passthru_irq_hv: Could not assign IRQ map for (X,Y)
> kvmppc_set_passthru_irq (irq X, gsi Y) fails: -2
> vfio-pci A:B:C.D irq bypass producer (eventfd Z) registration fails: -2
>
> The patch removes the stale variable definition and fixes the
> is_pnv_opal_msi() by comparing against the chip name prefix.
>
> Fixes: f0ac60e6e311 ("powerpc/powernv/pci: Switch to use msi_create_parent_irq_domain()")
> Cc: stable@kernel.org
> Signed-off-by: Shivaprasad G Bhat <sbhat@linux.ibm.com>
> ---
> arch/powerpc/platforms/powernv/pci-ioda.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
> index 32ecbc46e74b..728a5610d167 100644
> --- a/arch/powerpc/platforms/powernv/pci-ioda.c
> +++ b/arch/powerpc/platforms/powernv/pci-ioda.c
> @@ -1623,15 +1623,13 @@ int64_t pnv_opal_pci_msi_eoi(struct irq_data *d)
> return opal_pci_msi_eoi(phb->opal_id, d->parent_data->hwirq);
> }
>
> -static struct irq_chip pnv_pci_msi_irq_chip;
> -
> /*
> * Returns true iff chip is something that we could call
> * pnv_opal_pci_msi_eoi for.
> */
> bool is_pnv_opal_msi(struct irq_chip *chip)
> {
> - return chip == &pnv_pci_msi_irq_chip;
> + return chip && chip->name && str_has_prefix(chip->name, "PNV-");
> }
> EXPORT_SYMBOL_GPL(is_pnv_opal_msi);
>
> @@ -1728,7 +1726,7 @@ static const struct msi_parent_ops pnv_msi_parent_ops = {
> .chip_flags = MSI_CHIP_FLAG_SET_EOI,
> .bus_select_token = DOMAIN_BUS_NEXUS,
> .bus_select_mask = MATCH_PCI_MSI,
> - .prefix = "PNV-",
> + .prefix = "PNV-", /* Note: is_pnv_opal_msi() uses this */
> .init_dev_msi_info = pnv_init_dev_msi_info,
> };
>
I boot tested this patch on KVM on PowerNV (P9) and KVM on LPAR (P10),
with the USB controller passed through to the guest.
The warnings are not observed.
Tested-by: Gautam Menghani <gautam@linux.ibm.com>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-08-24 18:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-19 17:58 [PATCH] powerpc: pci-ioda: Fix the stale irq chip reference Shivaprasad G Bhat
2026-08-24 18:49 ` Gautam Menghani
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®