On Wed, Jun 11, 2025 at 07:10:15AM -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 <shradhagupta@xxxxxxxxxxxxxxxxxxx> > Reviewed-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> > Reviewed-by: Saurabh Sengar <ssengar@xxxxxxxxxxxxxxxxxxx> Again, if you need it: Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > --- > 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 deletion(-) > > diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c > index ef5d655a0052..86ca041bf74a 100644 > --- a/drivers/pci/controller/pci-hyperv.c > +++ b/drivers/pci/controller/pci-hyperv.c > @@ -2119,6 +2119,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, > }; > > /** > @@ -2140,7 +2141,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 >