Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx> --- arch/arm/kvm/arm.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c index ff5feef..ad8566f 100644 --- a/arch/arm/kvm/arm.c +++ b/arch/arm/kvm/arm.c @@ -193,11 +193,9 @@ int kvm_dev_ioctl_check_extension(long ext) { int r; switch (ext) { -#ifdef CONFIG_KVM_ARM_VGIC case KVM_CAP_IRQCHIP: r = vgic_present; break; -#endif case KVM_CAP_USER_MEMORY: case KVM_CAP_SYNC_MMU: case KVM_CAP_DESTROY_MEMORY_REGION_WORKS: @@ -828,7 +826,6 @@ int kvm_vm_ioctl_irq_line(struct kvm *kvm, struct kvm_irq_level *irq_level) return -EINVAL; return vcpu_interrupt_line(vcpu, irq_num, level); -#ifdef CONFIG_KVM_ARM_VGIC case KVM_ARM_IRQ_TYPE_PPI: if (!irqchip_in_kernel(kvm)) return -ENXIO; @@ -845,7 +842,6 @@ int kvm_vm_ioctl_irq_line(struct kvm *kvm, struct kvm_irq_level *irq_level) return -EINVAL; return kvm_vgic_inject_irq(kvm, 0, irq_num, level); -#endif } return -EINVAL; @@ -927,14 +923,12 @@ long kvm_arch_vm_ioctl(struct file *filp, void __user *argp = (void __user *)arg; switch (ioctl) { -#ifdef CONFIG_KVM_ARM_VGIC case KVM_CREATE_IRQCHIP: { if (vgic_present) return kvm_vgic_create(kvm); else return -ENXIO; } -#endif case KVM_SET_DEVICE_ADDRESS: { struct kvm_device_address dev_addr; @@ -1083,15 +1077,19 @@ static int init_hyp_mode(void) * Init HYP view of VGIC */ err = kvm_vgic_hyp_init(); - if (!err) - vgic_present = true; + if (err) + goto out_free_vfp; + +#ifdef CONFIG_KVM_ARM_VGIC + vgic_present = true; +#endif /* * Init HYP architected timer support */ err = kvm_timer_hyp_init(); if (err) - goto out_free_mappings; + goto out_free_vfp; return 0; out_free_vfp: -- 1.8.0.1 _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm