From: Roman Kisel <romank@xxxxxxxxxxxxxxxxxxx> Sent: Tuesday, February 11, 2025 5:43 PM > > The VMBus driver uses ACPI for interrupt assignment on > arm64 hence it won't function in the VTL mode where only > DeviceTree can be used. > > Update the VMBus driver to discover interrupt configuration > from DT. > > Signed-off-by: Roman Kisel <romank@xxxxxxxxxxxxxxxxxxx> > --- > drivers/hv/vmbus_drv.c | 36 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c > index 0f6cd44fff29..9d0c2dbd2a69 100644 > --- a/drivers/hv/vmbus_drv.c > +++ b/drivers/hv/vmbus_drv.c > @@ -2335,6 +2335,36 @@ static int vmbus_acpi_add(struct platform_device *pdev) > } > #endif > > +static int __maybe_unused vmbus_set_irq(struct platform_device *pdev) > +{ > + struct irq_data *data; > + int irq; > + irq_hw_number_t hwirq; > + > + irq = platform_get_irq(pdev, 0); > + if (irq == 0) { > + pr_err("VMBus interrupt mapping failure\n"); > + return -EINVAL; > + } > + if (irq < 0) { > + pr_err("VMBus interrupt data can't be read from DeviceTree, error > %d\n", irq); > + return irq; > + } > + > + data = irq_get_irq_data(irq); > + if (!data) { > + pr_err("No interrupt data for VMBus virq %d\n", irq); > + return -ENODEV; > + } > + hwirq = irqd_to_hwirq(data); > + > + vmbus_irq = irq; > + vmbus_interrupt = hwirq; > + pr_debug("VMBus virq %d, hwirq %d\n", vmbus_irq, vmbus_interrupt); > + > + return 0; > +} > + > static int vmbus_device_add(struct platform_device *pdev) > { > struct resource **cur_res = &hyperv_mmio; > @@ -2349,6 +2379,12 @@ static int vmbus_device_add(struct platform_device *pdev) > if (ret) > return ret; > > +#ifndef HYPERVISOR_CALLBACK_VECTOR > + ret = vmbus_set_irq(pdev); > + if (ret) > + return ret; > +#endif > + > for_each_of_range(&parser, &range) { > struct resource *res; > > -- > 2.43.0 > Having to do the #ifdef HYPERVISOR_CALLBACK_VECTOR is unfortunate, but I don't immediately have a cleaner approach to offer. Reviewed-by: Michael Kelley <mhklinux@xxxxxxxxxxx>