Linus, The following changes since commit 5167d09ffad5b16b574d35ce3047ed34caf1e837: Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux (2014-08-04 12:31:53 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus for you to fetch changes up to c77dcacb397519b6ade8f08201a4a90a7f4f751e: KVM: Move more code under CONFIG_HAVE_KVM_IRQFD (2014-08-06 14:24:47 +0200) ---------------------------------------------------------------- Here are the PPC and ARM changes for KVM, which I separated because they had small conflicts (respectively within KVM documentation, and with 3.16-rc changes). Since they were all within the subsystem, I took care of them. Stephen Rothwell reported some snags in PPC builds, but they are all fixed now; the latest linux-next report was clean. New features for ARM include: - KVM VGIC v2 emulation on GICv3 hardware - Big-Endian support for arm/arm64 (guest and host) - Debug Architecture support for arm64 (arm32 is on Christoffer's todo list) And for PPC: - Book3S: Good number of LE host fixes, enable HV on LE - Book3S HV: Add in-guest debug support This release drops support for KVM on the PPC440. As a result, the PPC merge removes more lines than it adds. :) I also included an x86 change, since Davidlohr tied it to an independent bug report and the reporter quickly provided a Tested-by; there was no reason to wait for -rc2. ---------------------------------------------------------------- Alex Bennée (2): arm64: KVM: export demux regids as KVM_REG_ARM64 arm64: KVM: allow export and import of generic timer regs Alexander Graf (31): KVM: PPC: Book3s PR: Disable AIL mode with OPAL KVM: PPC: Book3s HV: Fix tlbie compile error KVM: PPC: Book3S PR: Handle hyp doorbell exits KVM: PPC: Book3S PR: Fix ABIv2 on LE KVM: PPC: Book3S PR: Fix sparse endian checks PPC: Add asm helpers for BE 32bit load/store KVM: PPC: Book3S HV: Make HTAB code LE host aware KVM: PPC: Book3S HV: Access guest VPA in BE KVM: PPC: Book3S HV: Access host lppaca and shadow slb in BE KVM: PPC: Book3S HV: Access XICS in BE KVM: PPC: Book3S HV: Fix ABIv2 on LE KVM: PPC: Book3S HV: Enable for little endian hosts KVM: PPC: Book3S: Move vcore definition to end of kvm_arch struct KVM: PPC: Deflect page write faults properly in kvmppc_st KVM: PPC: Book3S: Stop PTE lookup on write errors KVM: PPC: Book3S: Add hack for split real mode KVM: PPC: Book3S: Make magic page properly 4k mappable KVM: PPC: Remove 440 support KVM: Rename and add argument to check_extension KVM: Allow KVM_CHECK_EXTENSION on the vm fd KVM: PPC: Book3S: Provide different CAPs based on HV or PR mode KVM: PPC: Implement kvmppc_xlate for all targets KVM: PPC: Move kvmppc_ld/st to common code KVM: PPC: Remove kvmppc_bad_hva() KVM: PPC: Use kvm_read_guest in kvmppc_ld KVM: PPC: Handle magic page in kvmppc_ld/st KVM: PPC: Separate loadstore emulation from priv emulation KVM: PPC: Expose helper functions for data/inst faults KVM: PPC: Remove DCR handling KVM: PPC: HV: Remove generic instruction emulation KVM: PPC: PR: Handle FSCR feature deselects Alexey Kardashevskiy (1): KVM: PPC: Book3S: Fix LPCR one_reg interface Aneesh Kumar K.V (4): KVM: PPC: BOOK3S: PR: Fix PURR and SPURR emulation KVM: PPC: BOOK3S: PR: Emulate virtual timebase register KVM: PPC: BOOK3S: PR: Emulate instruction counter KVM: PPC: BOOK3S: HV: Update compute_tlbie_rb to handle 16MB base page Anton Blanchard (2): KVM: PPC: Book3S HV: Fix ABIv2 indirect branch issue KVM: PPC: Assembly functions exported to modules need _GLOBAL_TOC() Bharat Bhushan (10): kvm: ppc: bookehv: Added wrapper macros for shadow registers kvm: ppc: booke: Use the shared struct helpers of SRR0 and SRR1 kvm: ppc: booke: Use the shared struct helpers of SPRN_DEAR kvm: ppc: booke: Add shared struct helpers of SPRN_ESR kvm: ppc: booke: Use the shared struct helpers for SPRN_SPRG0-7 kvm: ppc: Add SPRN_EPR get helper function kvm: ppc: bookehv: Save restore SPRN_SPRG9 on guest entry exit KVM: PPC: Booke-hv: Add one reg interface for SPRG9 KVM: PPC: Remove comment saying SPRG1 is used for vcpu pointer KVM: PPC: BOOKEHV: rename e500hv_spr to bookehv_spr Christoffer Dall (2): arm/arm64: KVM: Fix and refactor unmap_range Merge tag 'deps-irqchip-gic-3.17' of git://git.infradead.org/users/jcooper/linux.git Eric Auger (1): ARM: KVM: Unmap IPA on memslot delete/move 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 (31): arm64: GICv3 device tree binding documentation arm64: boot protocol documentation update for GICv3 KVM: arm/arm64: vgic: move GICv2 registers to their own structure KVM: ARM: vgic: introduce vgic_ops and LR manipulation primitives KVM: ARM: vgic: abstract access to the ELRSR bitmap KVM: ARM: vgic: abstract EISR bitmap access KVM: ARM: vgic: abstract MISR decoding KVM: ARM: vgic: move underflow handling to vgic_ops KVM: ARM: vgic: abstract VMCR access KVM: ARM: vgic: introduce vgic_enable KVM: ARM: introduce vgic_params structure KVM: ARM: vgic: split GICv2 backend from the main vgic code KVM: ARM: vgic: revisit implementation of irqchip_in_kernel arm64: KVM: remove __kvm_hyp_code_{start,end} from hyp.S arm64: KVM: split GICv2 world switch from hyp code arm64: KVM: move HCR_EL2.{IMO,FMO} manipulation into the vgic switch code KVM: ARM: vgic: add the GICv3 backend arm64: KVM: vgic: add GICv3 world switch arm64: KVM: vgic: enable GICv2 emulation on top on GICv3 hardware arm64: KVM: rename pm_fake handler to trap_raz_wi arm64: move DBG_MDSCR_* to asm/debug-monitors.h arm64: KVM: add trap handlers for AArch64 debug registers arm64: KVM: common infrastructure for handling AArch32 CP14/CP15 arm64: KVM: use separate tables for AArch32 32 and 64bit traps arm64: KVM: check ordering of all system register tables arm64: KVM: add trap handlers for AArch32 debug registers arm64: KVM: implement lazy world switch for debug registers arm64: KVM: enable trapping of all debug registers arm64: KVM: GICv3: move system register access to msr_s/mrs_s KVM: arm64: GICv3: mandate page-aligned GICV region arm64: KVM: fix 64bit CP15 VM access for 32bit guests Michael Neuling (1): KVM: PPC: Book3S HV: Add H_SET_MODE hcall handling Mihai Caraman (8): KVM: PPC: e500mc: Enhance tlb invalidation condition on vcpu schedule KVM: PPC: e500: Fix default tlb for victim hint KVM: PPC: e500: Emulate power management control SPR KVM: PPC: e500mc: Revert "add load inst fixup" KVM: PPC: Book3e: Add TLBSEL/TSIZE defines for MAS0/1 KVM: PPC: Book3s: Remove kvmppc_read_inst() function KVM: PPC: Allow kvmppc_get_last_inst() to fail KVM: PPC: Bookehv: Get vcpu's last instruction for emulation Paolo Bonzini (4): Merge tag 'kvm-arm-for-3.17' of git://git.kernel.org/.../kvmarm/kvmarm into kvm Merge tag 'signed-kvm-ppc-next' of git://github.com/agraf/linux-2.6 into kvm KVM: PPC: drop duplicate tracepoint KVM: Move more code under CONFIG_HAVE_KVM_IRQFD Paul Mackerras (10): KVM: PPC: Book3S: Controls for in-kernel sPAPR hypercall handling KVM: PPC: Book3S: Allow only implemented hcalls to be enabled or disabled KVM: PPC: Book3S PR: Take SRCU read lock around RTAS kvm_read_guest() call KVM: PPC: Book3S: Make kvmppc_ld return a more accurate error indication KVM: Don't keep reference to irq routing table in irqfd struct KVM: irqchip: Provide and use accessors for irq routing table KVM: Move all accesses to kvm::irq_routing into irqchip.c KVM: Move irq notifier implementation into eventfd.c KVM: Give IRQFD its own separate enabling Kconfig option KVM: PPC: Enable IRQFD support for the XICS interrupt controller Stewart Smith (2): Split out struct kvmppc_vcore creation to separate function Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8 Victor Kamensky (12): ARM: KVM: fix vgic V7 assembler code to work in BE image ARM: KVM: handle 64bit values passed to mrcc or from mcrr instructions in BE case ARM: KVM: __kvm_vcpu_run function return result fix in BE case ARM: KVM: vgic mmio should hold data as LE bytes array in BE case ARM: KVM: MMIO support BE host running LE code ARM: KVM: one_reg coproc set and get BE fixes ARM: KVM: enable KVM in Kconfig on big-endian systems ARM64: KVM: MMIO support BE host running LE code ARM64: KVM: store kvm_vcpu_fault_info est_el2 as word ARM64: KVM: fix vgic_bitmap_get_reg function for BE 64bit case ARM64: KVM: set and get of sys registers in BE case ARM64: KVM: fix big endian issue in access_vm_reg for 32bit guest Wanpeng Li (2): KVM: nVMX: Fix nested vmexit ack intr before load vmcs01 KVM: nVMX: fix "acknowledge interrupt on exit" when APICv is in use Documentation/arm64/booting.txt | 8 + Documentation/devicetree/bindings/arm/gic-v3.txt | 79 +++ Documentation/powerpc/00-INDEX | 2 - Documentation/powerpc/kvm_440.txt | 41 -- Documentation/virtual/kvm/api.txt | 60 ++- arch/arm/include/asm/kvm_asm.h | 18 + arch/arm/include/asm/kvm_emulate.h | 22 +- arch/arm/include/asm/kvm_host.h | 8 +- arch/arm/include/asm/kvm_mmu.h | 12 + arch/arm/kernel/asm-offsets.c | 14 +- arch/arm/kernel/hyp-stub.S | 4 +- arch/arm/kvm/Kconfig | 2 +- arch/arm/kvm/Makefile | 1 + arch/arm/kvm/arm.c | 39 +- arch/arm/kvm/coproc.c | 88 +++- arch/arm/kvm/guest.c | 10 - arch/arm/kvm/init.S | 4 +- arch/arm/kvm/interrupts.S | 9 +- arch/arm/kvm/interrupts_head.S | 48 +- arch/arm/kvm/mmu.c | 214 +++++--- arch/arm64/include/asm/debug-monitors.h | 19 +- arch/arm64/include/asm/kvm_arm.h | 5 +- arch/arm64/include/asm/kvm_asm.h | 53 +- arch/arm64/include/asm/kvm_coproc.h | 3 +- arch/arm64/include/asm/kvm_emulate.h | 22 + arch/arm64/include/asm/kvm_host.h | 48 +- arch/arm64/include/asm/kvm_mmu.h | 15 + arch/arm64/include/asm/virt.h | 4 + arch/arm64/kernel/asm-offsets.c | 26 +- arch/arm64/kernel/debug-monitors.c | 9 - arch/arm64/kvm/Makefile | 4 + arch/arm64/kvm/guest.c | 68 ++- arch/arm64/kvm/handle_exit.c | 4 +- arch/arm64/kvm/hyp.S | 600 +++++++++++++++++++---- arch/arm64/kvm/sys_regs.c | 546 ++++++++++++++++++--- arch/arm64/kvm/vgic-v2-switch.S | 133 +++++ arch/arm64/kvm/vgic-v3-switch.S | 267 ++++++++++ arch/ia64/kvm/Kconfig | 1 + arch/ia64/kvm/kvm-ia64.c | 2 +- arch/mips/kvm/mips.c | 2 +- arch/powerpc/Kconfig.debug | 4 +- arch/powerpc/configs/ppc44x_defconfig | 1 - arch/powerpc/include/asm/asm-compat.h | 4 + arch/powerpc/include/asm/cache.h | 7 + arch/powerpc/include/asm/hvcall.h | 6 + arch/powerpc/include/asm/kvm_44x.h | 67 --- arch/powerpc/include/asm/kvm_asm.h | 2 +- arch/powerpc/include/asm/kvm_book3s.h | 51 +- arch/powerpc/include/asm/kvm_book3s_64.h | 29 +- arch/powerpc/include/asm/kvm_booke.h | 15 +- arch/powerpc/include/asm/kvm_host.h | 28 +- arch/powerpc/include/asm/kvm_ppc.h | 116 ++++- arch/powerpc/include/asm/mmu-book3e.h | 8 +- arch/powerpc/include/asm/ppc-opcode.h | 17 + arch/powerpc/include/asm/reg.h | 13 +- arch/powerpc/include/asm/time.h | 9 + arch/powerpc/include/uapi/asm/kvm.h | 2 + arch/powerpc/kernel/asm-offsets.c | 2 + arch/powerpc/kvm/44x.c | 237 --------- arch/powerpc/kvm/44x_emulate.c | 194 -------- arch/powerpc/kvm/44x_tlb.c | 528 -------------------- arch/powerpc/kvm/44x_tlb.h | 86 ---- arch/powerpc/kvm/Kconfig | 20 +- arch/powerpc/kvm/Makefile | 18 +- arch/powerpc/kvm/book3s.c | 156 +++--- arch/powerpc/kvm/book3s_32_mmu.c | 2 +- arch/powerpc/kvm/book3s_32_mmu_host.c | 7 +- arch/powerpc/kvm/book3s_64_mmu_host.c | 5 +- arch/powerpc/kvm/book3s_64_mmu_hv.c | 145 +++--- arch/powerpc/kvm/book3s_emulate.c | 28 +- arch/powerpc/kvm/book3s_hv.c | 271 ++++++++-- arch/powerpc/kvm/book3s_hv_builtin.c | 13 + arch/powerpc/kvm/book3s_hv_ras.c | 6 +- arch/powerpc/kvm/book3s_hv_rm_mmu.c | 146 +++--- arch/powerpc/kvm/book3s_hv_rm_xics.c | 5 + arch/powerpc/kvm/book3s_hv_rmhandlers.S | 70 ++- arch/powerpc/kvm/book3s_paired_singles.c | 38 +- arch/powerpc/kvm/book3s_pr.c | 223 ++++++--- arch/powerpc/kvm/book3s_pr_papr.c | 92 +++- arch/powerpc/kvm/book3s_xics.c | 55 ++- arch/powerpc/kvm/book3s_xics.h | 2 + arch/powerpc/kvm/booke.c | 225 +++++---- arch/powerpc/kvm/booke.h | 7 - arch/powerpc/kvm/booke_emulate.c | 8 +- arch/powerpc/kvm/booke_interrupts.S | 5 - arch/powerpc/kvm/bookehv_interrupts.S | 60 +-- arch/powerpc/kvm/e500_emulate.c | 12 + arch/powerpc/kvm/e500_mmu_host.c | 102 ++++ arch/powerpc/kvm/e500mc.c | 28 +- arch/powerpc/kvm/emulate.c | 206 +------- arch/powerpc/kvm/emulate_loadstore.c | 272 ++++++++++ arch/powerpc/kvm/mpic.c | 4 +- arch/powerpc/kvm/powerpc.c | 181 ++++++- arch/powerpc/kvm/timing.c | 1 - arch/powerpc/kvm/timing.h | 3 - arch/s390/kvm/Kconfig | 1 + arch/s390/kvm/interrupt.c | 3 +- arch/s390/kvm/kvm-s390.c | 2 +- arch/x86/kvm/Kconfig | 1 + arch/x86/kvm/irq.c | 2 +- arch/x86/kvm/lapic.c | 52 +- arch/x86/kvm/vmx.c | 4 +- arch/x86/kvm/x86.c | 2 +- include/kvm/arm_arch_timer.h | 14 + include/kvm/arm_vgic.h | 115 ++++- include/linux/kvm_host.h | 47 +- include/trace/events/kvm.h | 8 +- include/uapi/linux/kvm.h | 6 +- virt/kvm/Kconfig | 3 + virt/kvm/arm/vgic-v2.c | 265 ++++++++++ virt/kvm/arm/vgic-v3.c | 247 ++++++++++ virt/kvm/arm/vgic.c | 389 ++++++++------- virt/kvm/eventfd.c | 134 +++-- virt/kvm/irq_comm.c | 24 +- virt/kvm/irqchip.c | 98 ++-- virt/kvm/kvm_main.c | 62 +-- 116 files changed, 5010 insertions(+), 2825 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/gic-v3.txt delete mode 100644 Documentation/powerpc/kvm_440.txt create mode 100644 arch/arm64/kvm/vgic-v2-switch.S create mode 100644 arch/arm64/kvm/vgic-v3-switch.S delete mode 100644 arch/powerpc/include/asm/kvm_44x.h delete mode 100644 arch/powerpc/kvm/44x.c delete mode 100644 arch/powerpc/kvm/44x_emulate.c delete mode 100644 arch/powerpc/kvm/44x_tlb.c delete mode 100644 arch/powerpc/kvm/44x_tlb.h create mode 100644 arch/powerpc/kvm/emulate_loadstore.c create mode 100644 virt/kvm/arm/vgic-v2.c create mode 100644 virt/kvm/arm/vgic-v3.c -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html