On 4/17/2025 8:28 AM, Michael Kelley wrote:
From: Roman Kisel <rom...@linux.microsoft.com> Sent: Monday, April 14, 2025 
3:47 PM
[...]

+       if (acpi_irq_model != ACPI_IRQ_MODEL_GIC)
+               return NULL;

This causes a build error on arm64 if pci-hyperv.c is built as a
module because acpi_irq_model is not exported.

Will fix that! Appreciate your reviews very much!


Michael

+       gsi_domain_disp_fn = acpi_get_gsi_dispatcher();
+       if (!gsi_domain_disp_fn)
+               return NULL;
+       return irq_find_matching_fwnode(gsi_domain_disp_fn(0),
+                                    DOMAIN_BUS_ANY);
+}
+
+#endif
+
  static int hv_pci_irqchip_init(void)
  {
        static struct hv_pci_chip_data *chip_data;
        struct fwnode_handle *fn = NULL;
+       struct irq_domain *irq_domain_parent = NULL;
        int ret = -ENOMEM;

        chip_data = kzalloc(sizeof(*chip_data), GFP_KERNEL);
@@ -907,9 +952,24 @@ static int hv_pci_irqchip_init(void)
         * way to ensure that all the corresponding devices are also gone and
         * no interrupts will be generated.
         */
-       hv_msi_gic_irq_domain = acpi_irq_create_hierarchy(0, HV_PCI_MSI_SPI_NR,
-                                                         fn, 
&hv_pci_domain_ops,
-                                                         chip_data);
+#ifdef CONFIG_ACPI
+       if (!acpi_disabled)
+               irq_domain_parent = hv_pci_acpi_irq_domain_parent();
+#endif
+#ifdef CONFIG_OF
+       if (!irq_domain_parent)
+               irq_domain_parent = hv_pci_of_irq_domain_parent();
+#endif
+       if (!irq_domain_parent) {
+               WARN_ONCE(1, "Invalid firmware configuration for VMBus 
interrupts\n");
+               ret = -EINVAL;
+               goto free_chip;
+       }
+
+       hv_msi_gic_irq_domain = irq_domain_create_hierarchy(irq_domain_parent, 
0,
+               HV_PCI_MSI_SPI_NR,
+               fn, &hv_pci_domain_ops,
+               chip_data);

        if (!hv_msi_gic_irq_domain) {
                pr_err("Failed to create Hyper-V arm64 vPCI MSI IRQ domain\n");
--
2.43.0



--
Thank you,
Roman


Reply via email to