diff --git a/arch/arm64/kvm/vgic/vgic-init.c b/arch/arm64/kvm/vgic/vgic-init.c index 7f19d1e27fc535eefb0b0f438370ad2eb4063360..5579ca6b1d8097129bd1b732df9be573b814baf9 100644 --- a/arch/arm64/kvm/vgic/vgic-init.c +++ b/arch/arm64/kvm/vgic/vgic-init.c @@ -532,31 +532,39 @@ int kvm_vgic_map_resources(struct kvm *kvm) return ret; } +#ifdef CONFIG_ACPI extern struct static_key_false ipiv_enable; static int ipiv_irq; +#endif /* GENERIC PROBE */ void kvm_vgic_cpu_up(void) { enable_percpu_irq(kvm_vgic_global_state.maint_irq, 0); +#ifdef CONFIG_ACPI if (static_branch_unlikely(&ipiv_enable)) enable_percpu_irq(ipiv_irq, 0); +#endif } void kvm_vgic_cpu_down(void) { disable_percpu_irq(kvm_vgic_global_state.maint_irq); +#ifdef CONFIG_ACPI if (static_branch_unlikely(&ipiv_enable)) disable_percpu_irq(ipiv_irq); +#endif } +#ifdef CONFIG_ACPI static irqreturn_t vgic_ipiv_irq_handler(int irq, void *data) { kvm_info("IPIV irq handler!\n"); return IRQ_HANDLED; } +#endif static irqreturn_t vgic_maintenance_handler(int irq, void *data) { @@ -667,6 +675,7 @@ int kvm_vgic_hyp_init(void) kvm_info("vgic interrupt IRQ%d\n", kvm_vgic_global_state.maint_irq); +#ifdef CONFIG_ACPI if (static_branch_unlikely(&ipiv_enable)) { ipiv_irq = acpi_register_gsi(NULL, 18, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_HIGH); @@ -687,6 +696,7 @@ int kvm_vgic_hyp_init(void) return ret; } } +#endif return 0; }