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.14.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.14.40. They can be fetched from following address: https://git.linaro.org/people/shannon.zhao/linux-stable.git linux-3.14.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 Ard Biesheuvel (3): ARM/arm64: KVM: fix use of WnR bit in kvm_is_write_fault() arm/arm64: KVM: fix potential NULL dereference in user_mem_abort() arm/arm64: kvm: drop inappropriate use of kvm_is_mmio_pfn() Christoffer Dall (11): arm/arm64: KVM: Fix and refactor unmap_range arm/arm64: KVM: Fix set_clear_sgi_pend_reg offset arm/arm64: KVM: Ensure memslots are within KVM_PHYS_SIZE arm/arm64: KVM: vgic: Fix error code in kvm_vgic_create() 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 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 Marc Zyngier (15): 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 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 Mark Rutland (1): arm64: KVM: fix unmapping with 48-bit VAs 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 (6): 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 | 4 +- arch/arm/include/asm/kvm_asm.h | 4 +- arch/arm/include/asm/kvm_emulate.h | 5 + 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 | 4 +- arch/arm/kvm/arm.c | 73 +++---- arch/arm/kvm/coproc.c | 86 ++++++-- arch/arm/kvm/coproc.h | 14 +- arch/arm/kvm/coproc_a15.c | 2 +- arch/arm/kvm/coproc_a7.c | 2 +- arch/arm/kvm/interrupts_head.S | 21 +- arch/arm/kvm/mmu.c | 398 ++++++++++++++++++++++++++++------- arch/arm64/include/asm/kvm_arm.h | 35 ++- arch/arm64/include/asm/kvm_asm.h | 3 +- arch/arm64/include/asm/kvm_emulate.h | 7 + arch/arm64/include/asm/kvm_host.h | 4 +- arch/arm64/include/asm/kvm_mmu.h | 58 +++-- arch/arm64/kvm/guest.c | 1 - arch/arm64/kvm/hyp.S | 15 +- 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 +- virt/kvm/arm/arch_timer.c | 30 ++- virt/kvm/arm/vgic.c | 65 ++++-- 28 files changed, 756 insertions(+), 261 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