This is the second version of my VGIC patches after Christoffer's exaustive review. A lot of the code has been changed, notably the way we handle level-triggered interrupts, the various accessors, a ton of bug fixes, and probably as many introduced. One thing that hasn't changed yet is the interrupt injection API. Once we're happy with the rest of the code, it won't be a big deal to fix it. This relies on my previously posted mm-fixes series. This is based on the kvm-arm-v10-stage branch, and is available at: git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git kvm-a15-v10-stage-v3.5-rc5-vgic Tested on the TC2 platform, A15 cluster only. Marc Zyngier (11): ARM: KVM: Keep track of currently running vcpus 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 control interface world switch ARM: KVM: VGIC initialisation code ARM: KVM: Add VGIC configuration option ARM: KVM: VGIC: Update KVM API documentation ARM: KVM: Add MMIO exit statistics to debugfs Documentation/virtual/kvm/api.txt | 26 +- arch/arm/include/asm/kvm_arm.h | 12 + arch/arm/include/asm/kvm_emulate.h | 9 + arch/arm/include/asm/kvm_host.h | 11 + arch/arm/include/asm/kvm_vgic.h | 264 +++++++++ arch/arm/kernel/asm-offsets.c | 11 + arch/arm/kvm/Kconfig | 7 + arch/arm/kvm/Makefile | 1 + arch/arm/kvm/arm.c | 94 +++- arch/arm/kvm/emulate.c | 2 +- arch/arm/kvm/interrupts.S | 80 +++ arch/arm/kvm/mmu.c | 31 +- arch/arm/kvm/vgic.c | 1037 ++++++++++++++++++++++++++++++++++++ virt/kvm/kvm_main.c | 5 +- 14 files changed, 1571 insertions(+), 19 deletions(-) create mode 100644 arch/arm/include/asm/kvm_vgic.h create mode 100644 arch/arm/kvm/vgic.c -- 1.7.10.3