From: Shannon Zhao <shannon.zhao@xxxxxxxxxx> For KVM/ARM there are many fixes which have been applied upstream while not committed to stable kernels. Here we backport the important fixes to 3.12.y stable kernel. We have compile-tested each patch on arm/arm64/x86 to make sure the series are bisectable and have booted the resulting kernel on Fastmodel and started 2 VMs for arm/arm64, and have boot-tested on TC2 and started a guest. These patches are applied on the top of 3.12.40. They can be fetched from following address: https://git.linaro.org/people/shannon.zhao/linux-stable.git linux-3.12.y Thanks, Shannon Alex Bennée (1): arm64: KVM: export demux regids as KVM_REG_ARM64 Andre Przywara (1): KVM: arm/arm64: vgic: fix GICD_ICFGR register accesses Anup Patel (1): arm64: KVM: Force undefined exception for Guest SMC intructions Ard Biesheuvel (2): ARM/arm64: KVM: fix use of WnR bit in kvm_is_write_fault() arm/arm64: kvm: drop inappropriate use of kvm_is_mmio_pfn() Christoffer Dall (15): KVM: ARM: Update comments for kvm_handle_wfi arm/arm64: KVM: arch_timer: Initialize cntvoff at kvm_init ARM: KVM: Allow creating the VGIC after VCPUs arm/arm64: kvm: Set vcpu->cpu to -1 on vcpu_put arm: KVM: Don't return PSCI_INVAL if waitqueue is inactive arm/arm64: KVM: Fix and refactor unmap_range arm/arm64: KVM: Complete WFI/WFE instructions arm/arm64: KVM: Ensure memslots are within KVM_PHYS_SIZE arm/arm64: KVM: Don't clear the VCPU_POWER_OFF flag arm/arm64: KVM: Correct KVM_ARM_VCPU_INIT power off option arm/arm64: KVM: Reset the HCR on each vcpu when resetting the vcpu arm/arm64: KVM: Introduce stage2_unmap_vm arm/arm64: KVM: Don't allow creating VCPUs after vgic_initialized arm/arm64: KVM: Require in-kernel vgic for the arch timers arm/arm64: KVM: Keep elrsr/aisr in sync with software model Eric Auger (1): ARM: KVM: Unmap IPA on memslot delete/move Geoff Levand (1): arm64/kvm: Fix assembler compatibility of macros Haibin Wang (1): KVM: ARM: vgic: Fix the overlap check action about setting the GICD & GICC base address. Joel Schopp (1): arm/arm64: KVM: Fix VTTBR_BADDR_MASK and pgd alloc Jonathan Austin (2): KVM: ARM: Fix calculation of virtual CPU ID KVM: ARM: fix the size of TTBCR_{T0SZ,T1SZ} masks Kim Phillips (1): ARM: KVM: user_mem_abort: support stage 2 MMIO page mapping Li Liu (1): ARM: virt: fix wrong HSCTLR.EE bit setting Lorenzo Pieralisi (1): arm: kvm: implement CPU PM notifier Marc Zyngier (22): ARM: KVM: Yield CPU when vcpu executes a WFE ARM: KVM: Fix MPIDR computing to support virtual clusters ARM: KVM: fix L2CTLR to be per-cluster arm/arm64: KVM: PSCI: use MPIDR to identify a target CPU arm64: KVM: Yield CPU when vcpu executes a WFE arm/arm64: KVM: detect CPU reset on CPU_PM_EXIT arm64: KVM: force cache clean on page fault when caches are off arm64: KVM: allows discrimination of AArch32 sysreg access arm64: KVM: trap VM system registers until MMU and caches are ON ARM: KVM: introduce kvm_p*d_addr_end arm64: KVM: flush VM pages before letting the guest enable caches ARM: KVM: force cache clean on page fault when caches are off ARM: KVM: fix handling of trapped 64bit coprocessor accesses ARM: KVM: fix ordering of 64bit coprocessor accesses ARM: KVM: introduce per-vcpu HYP Configuration Register ARM: KVM: add world-switch for AMAIR{0,1} ARM: KVM: trap VM system registers until MMU and caches are ON ARM: KVM: fix non-VGIC compilation KVM: ARM: vgic: plug irq injection race arm64: KVM: Fix TLB invalidation by IPA/VMID arm64: KVM: Fix HCR setting for 32bit guests arm64: KVM: Do not use pgd_index to index stage-2 pgd Pranavkumar Sawargaonkar (1): ARM/ARM64: KVM: Nuke Hyp-mode tlbs before enabling MMU Sachin Kamat (1): KVM: ARM: Remove duplicate include Steve Capper (1): arm: kvm: STRICT_MM_TYPECHECKS fix for user_mem_abort Victor Kamensky (1): ARM64: KVM: store kvm_vcpu_fault_info est_el2 as word Vladimir Murzin (1): arm: kvm: fix CPU hotplug Will Deacon (7): ARM: KVM: disable KVM in Kconfig on big-endian systems arm64: kvm: use inner-shareable barriers for inner-shareable maintenance kvm: arm64: vgic: fix hyp panic with 64k pages on juno platform KVM: ARM/arm64: fix non-const declaration of function returning const KVM: ARM/arm64: fix broken __percpu annotation KVM: ARM/arm64: avoid returning negative error code as bool KVM: vgic: return int instead of bool when checking I/O ranges Documentation/virtual/kvm/api.txt | 3 +- arch/arm/include/asm/kvm_arm.h | 11 +- arch/arm/include/asm/kvm_asm.h | 4 +- arch/arm/include/asm/kvm_emulate.h | 10 ++ arch/arm/include/asm/kvm_host.h | 11 +- arch/arm/include/asm/kvm_mmu.h | 55 ++++-- arch/arm/kernel/asm-offsets.c | 1 + arch/arm/kernel/hyp-stub.S | 2 +- arch/arm/kvm/Kconfig | 3 +- arch/arm/kvm/arm.c | 142 +++++++++------ arch/arm/kvm/coproc.c | 85 +++++++-- arch/arm/kvm/coproc.h | 14 +- arch/arm/kvm/coproc_a15.c | 19 +- arch/arm/kvm/handle_exit.c | 24 ++- arch/arm/kvm/init.S | 4 + arch/arm/kvm/interrupts.S | 11 +- arch/arm/kvm/interrupts_head.S | 21 ++- arch/arm/kvm/mmu.c | 331 ++++++++++++++++++++++++++++++----- arch/arm/kvm/psci.c | 27 ++- arch/arm64/include/asm/kvm_arm.h | 41 +++-- arch/arm64/include/asm/kvm_asm.h | 3 +- arch/arm64/include/asm/kvm_emulate.h | 12 ++ arch/arm64/include/asm/kvm_host.h | 4 +- arch/arm64/include/asm/kvm_mmu.h | 58 +++--- arch/arm64/kvm/Kconfig | 1 + arch/arm64/kvm/guest.c | 1 - arch/arm64/kvm/handle_exit.c | 23 ++- arch/arm64/kvm/hyp-init.S | 4 + arch/arm64/kvm/hyp.S | 42 ++++- arch/arm64/kvm/reset.c | 1 - arch/arm64/kvm/sys_regs.c | 103 +++++++++-- arch/arm64/kvm/sys_regs.h | 2 + include/kvm/arm_arch_timer.h | 10 +- include/kvm/arm_vgic.h | 5 + virt/kvm/arm/arch_timer.c | 30 +++- virt/kvm/arm/vgic.c | 76 ++++++-- 36 files changed, 917 insertions(+), 277 deletions(-) -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html