The generic KVM core code (e.g., kvm_main.c and eventfd.c) calls into irqchip-specific helpers such as kvm_set_irq(), kvm_irq_map_gsi(), and kvm_irq_map_chip_pin(). These functions are defined in kvm_irqchip.c, which is not required or compiled when porting KVM to run on top of the Gunyah hypervisor. To allow building the KVM core code without linking errors in such configurations, provide weak stub implementations of these functions in eventfd.c. These stubs return appropriate default values (e.g., -ENXIO or -1) to indicate that the functionality is not available. This allows the KVM core to build successfully for platforms that do not use the in-kernel irqchip support, such as Gunyah. Signed-off-by: Karim Manaouil <karim.manaouil@xxxxxxxxxx> --- virt/kvm/eventfd.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c index d6702225e7f2..2a658d8277ed 100644 --- a/virt/kvm/eventfd.c +++ b/virt/kvm/eventfd.c @@ -56,6 +56,26 @@ kvm_arch_irqfd_allowed(struct kvm *kvm, struct kvm_irqfd *args) return true; } +int __attribute__((weak)) +kvm_set_irq(struct kvm *kvm, int irq_source_id, u32 irq, int level, + bool line_status) +{ + return -ENXIO; +} + +int __attribute__((weak)) +kvm_irq_map_gsi(struct kvm *kvm, + struct kvm_kernel_irq_routing_entry *entries, int gsi) +{ + return 0; +} + +int __attribute__((weak)) +kvm_irq_map_chip_pin(struct kvm *kvm, unsigned irqchip, unsigned pin) +{ + return -1; +} + static void irqfd_inject(struct work_struct *work) { -- 2.39.5