From 9e1fa6117980b5785bbb5e0a018c9192f0b61e68 Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Fri, 13 Nov 2026 14:32:55 -0800 Subject: [PATCH] Drivers: hv: give hyperv_remove_xen_vmbus_irq() its asm-generic declaration and stub Commit 2e155d61e6a8 ("drivers: hv: tear down the Xen VMBus interrupt bridge on unwind") added hyperv_remove_xen_vmbus_irq() to the x86 copy of the nested-on-Xen block in asm/mshyperv.h only. The asm-generic copy that other architectures use, arm64 among them, neither declares it nor stubs it, and vmbus_drv.c calls it unconditionally, so an arm64 kernel with CONFIG_HYPERV fails to compile. The nightly arm64 build does not enable HYPERV, which is why it did not catch this. Add the declaration and the empty stub to the asm-generic block, next to hyperv_setup_xen_vmbus_irq(), so the two copies match again. Signed-off-by: Ariadne Conill --- include/asm-generic/mshyperv.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/asm-generic/mshyperv.h b/include/asm-generic/mshyperv.h index cd9ab26bad2b71..19e567081ac9a7 100644 --- a/include/asm-generic/mshyperv.h +++ b/include/asm-generic/mshyperv.h @@ -343,6 +343,7 @@ unsigned long hv_nested_hostpfn(unsigned long pfn); u64 hv_nested_hostpa(void *va); void __init hyperv_init_nested_on_xen(void); int hyperv_setup_xen_vmbus_irq(void (*isr)(void)); +void hyperv_remove_xen_vmbus_irq(void); unsigned int hyperv_xen_vpci_vector(void); struct irq_domain *hyperv_xen_vpci_root_domain(void); #else @@ -351,6 +352,7 @@ static inline unsigned long hv_nested_hostpfn(unsigned long pfn) { return pfn; } static inline u64 hv_nested_hostpa(void *va) { return 0; } static inline void hyperv_init_nested_on_xen(void) {} static inline int hyperv_setup_xen_vmbus_irq(void (*isr)(void)) { return -ENODEV; } +static inline void hyperv_remove_xen_vmbus_irq(void) {} static inline unsigned int hyperv_xen_vpci_vector(void) { return 0; } static inline struct irq_domain *hyperv_xen_vpci_root_domain(void) { return NULL; } #endif