irqchip/gic-v3: Advertise GICv4 support to KVM

As KVM needs to know about the availability of GICv4 to enable
direct injection of interrupts, let's advertise the feature in
the gic_kvm_info structure.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>

+4
+2
drivers/irqchip/irq-gic-v3.c
··· 1159 if (!ret) 1160 gic_v3_kvm_info.vcpu = r; 1161 1162 gic_set_kvm_info(&gic_v3_kvm_info); 1163 } 1164 ··· 1453 vcpu->end = vcpu->start + ACPI_GICV2_VCPU_MEM_SIZE - 1; 1454 } 1455 1456 gic_set_kvm_info(&gic_v3_kvm_info); 1457 } 1458
··· 1159 if (!ret) 1160 gic_v3_kvm_info.vcpu = r; 1161 1162 + gic_v3_kvm_info.has_v4 = gic_data.rdists.has_vlpis; 1163 gic_set_kvm_info(&gic_v3_kvm_info); 1164 } 1165 ··· 1452 vcpu->end = vcpu->start + ACPI_GICV2_VCPU_MEM_SIZE - 1; 1453 } 1454 1455 + gic_v3_kvm_info.has_v4 = gic_data.rdists.has_vlpis; 1456 gic_set_kvm_info(&gic_v3_kvm_info); 1457 } 1458
+2
include/linux/irqchip/arm-gic-common.h
··· 27 unsigned int maint_irq; 28 /* Virtual control interface */ 29 struct resource vctrl; 30 }; 31 32 const struct gic_kvm_info *gic_get_kvm_info(void);
··· 27 unsigned int maint_irq; 28 /* Virtual control interface */ 29 struct resource vctrl; 30 + /* vlpi support */ 31 + bool has_v4; 32 }; 33 34 const struct gic_kvm_info *gic_get_kvm_info(void);