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>

Reply via email to