Re: [PATCH] powerpc: pci-ioda: Fix the stale irq chip reference

Gautam Menghani <[email protected]>
Newsgroups org.ozlabs.lists.linuxppc-dev,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
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: [email protected]
> Signed-off-by: Shivaprasad G Bhat <[email protected]>
> ---
>  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 <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.