This patch series adds support for the GIC virtualisation extensions (VGIC), and implements an in-kernel irqchip. This isn't a complete emulation of the GIC (some of the features are simply ignored as they are not required to run a Linux guest), and at least the following bits will eventually have to be fixed: - No state save/restore - Harcoded GIC CPU/distributor interface mapping address - MMIO decoding isn't generic - Handling of unaligned MMIO access It is also available as a branch there: git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git kvm-arm-vgic-3.4-rc7 Marc Zyngier (15): KVM: use KVM_CAP_IRQ_ROUTING to protect the routing related code ARM: KVM: Initial VGIC infrastructure support ARM: KVM: Initial VGIC MMIO support code ARM: KVM: VGIC distributor handling ARM: KVM: VGIC virtual CPU interface management ARM: KVM: VGIC interrupt injection ARM: KVM: VGIC initialisation code ARM: KVM: VGIC control interface world switch ARM: KVM: Add VGIC configuration option ARM: KVM: VGIC: Update KVM API documentation ARM: DT: Add binding for GIC virtualization extentions (VGIC) ARM: KVM: Convert VGIC to use device tree ARM: KVM: Make VGIC distributor MMIO table relative ARM: KVM: Allow up to two virtual CPUs ARM: KVM: Add exit statistics to debugfs Documentation/devicetree/bindings/arm/gic.txt | 35 +- Documentation/virtual/kvm/api.txt | 24 +- arch/arm/include/asm/kvm_arm.h | 10 + arch/arm/include/asm/kvm_host.h | 13 +- arch/arm/include/asm/kvm_vgic.h | 184 ++++++ arch/arm/kernel/asm-offsets.c | 10 + arch/arm/kvm/Kconfig | 7 + arch/arm/kvm/Makefile | 1 + arch/arm/kvm/arm.c | 58 ++- arch/arm/kvm/emulate.c | 3 +- arch/arm/kvm/guest.c | 13 + arch/arm/kvm/interrupts.S | 80 +++ arch/arm/kvm/mmu.c | 11 +- arch/arm/kvm/vgic.c | 879 +++++++++++++++++++++++++ include/linux/kvm_host.h | 2 +- virt/kvm/kvm_main.c | 7 +- 16 files changed, 1319 insertions(+), 18 deletions(-) create mode 100644 arch/arm/include/asm/kvm_vgic.h create mode 100644 arch/arm/kvm/vgic.c -- 1.7.7.1