On Tue, May 27, 2025 at 08:58:09AM -0700, Shradha Gupta wrote: > Allow dynamic MSI-X vector allocation for pci_hyperv PCI controller > by adding support for the flag MSI_FLAG_PCI_MSIX_ALLOC_DYN and using > pci_msix_prepare_desc() to prepare the MSI-X descriptors. > > Feature support added for both x86 and ARM64 > > Signed-off-by: Shradha Gupta <shradhagu...@linux.microsoft.com> > Reviewed-by: Haiyang Zhang <haiya...@microsoft.com> > --- > Changes in v4: > * use the same prepare_desc() callback for arm and x86 > --- > Changes in v3: > * Add arm64 support > --- > Changes in v2: > * split the patch to keep changes in PCI and pci_hyperv controller > seperate > * replace strings "pci vectors" by "MSI-X vectors" > --- > drivers/pci/controller/pci-hyperv.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletions(-) > > diff --git a/drivers/pci/controller/pci-hyperv.c > b/drivers/pci/controller/pci-hyperv.c > index ac27bda5ba26..0c790f35ad0e 100644 > --- a/drivers/pci/controller/pci-hyperv.c > +++ b/drivers/pci/controller/pci-hyperv.c > @@ -2063,6 +2063,7 @@ static struct irq_chip hv_msi_irq_chip = { > static struct msi_domain_ops hv_msi_ops = { > .msi_prepare = hv_msi_prepare, > .msi_free = hv_msi_free, > + .prepare_desc = pci_msix_prepare_desc, > }; > > /** > @@ -2084,7 +2085,7 @@ static int hv_pcie_init_irq_domain(struct > hv_pcibus_device *hbus) > hbus->msi_info.ops = &hv_msi_ops; > hbus->msi_info.flags = (MSI_FLAG_USE_DEF_DOM_OPS | > MSI_FLAG_USE_DEF_CHIP_OPS | MSI_FLAG_MULTI_PCI_MSI | > - MSI_FLAG_PCI_MSIX); > + MSI_FLAG_PCI_MSIX | MSI_FLAG_PCI_MSIX_ALLOC_DYN); > hbus->msi_info.handler = FLOW_HANDLER; > hbus->msi_info.handler_name = FLOW_NAME; > hbus->msi_info.data = hbus; > -- > 2.34.1 >
Reviewed-by: Saurabh Sengar <ssen...@linux.microsoft.com>