From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754538AbdEHOAc (ORCPT ); Mon, 8 May 2017 10:00:32 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:35358 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751791AbdEHOA2 (ORCPT ); Mon, 8 May 2017 10:00:28 -0400 From: Paolo Bonzini To: torvalds@linux-foundation.org Cc: linux-kernel@vger.kernel.org, rkrcmar@redhat.com, kvm@vger.kernel.org Subject: [GIT PULL] First batch of KVM changes for 4.12 merge window Date: Mon, 8 May 2017 16:00:22 +0200 Message-Id: <1494252022-7729-1-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Linus, The following changes since commit 152c1c8d60ebedce8cc912c12f9be9ceca6c6671: s390/cpacf: Introduce kma instruction (2017-04-26 14:15:43 +0200) 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 2e5b0bd9cc6172edef502dfae28ae790f74a882e: kvm: nVMX: Don't validate disabled secondary controls (2017-05-05 10:08:31 +0200) ---------------------------------------------------------------- * ARM: HYP mode stub supports kexec/kdump on 32-bit; improved PMU support; virtual interrupt controller performance improvements; support for userspace virtual interrupt controller (slower, but necessary for KVM on the weird Broadcom SoCs used by the Raspberry Pi 3) * MIPS: basic support for hardware virtualization (ImgTec P5600/P6600/I6400 and Cavium Octeon III) * PPC: in-kernel acceleration for VFIO * s390: support for guests without storage keys; adapter interruption suppression * x86: usual range of nVMX improvements, notably nested EPT support for accessed and dirty bits; emulation of CPL3 CPUID faulting * generic: first part of VCPU thread request API; kvm_stat improvements ---------------------------------------------------------------- Michael Ellerman mentioned a semantic conflict with changes that have been merged via the powerpc tree. However, I've un-pulled that KVM-PPC changes because it contained other undesired conflicts. If I can sort those out with Michael and Paul quickly, I'll do a separate pull request later this week, otherwise it will have to wait for 4.13. In either case, you need not care about that conflict anymore. There is another minor conflict in the ARM code though due to a bugfix (merged for 4.11 after kvm-arm branched). The bugfix added two new functions vgic_v2_write_lr and vgic_v2_init_lrs to virt/kvm/arm/vgic/vgic-v2.c, at the same place where 4.12 is removing u64_to_bitmask. Avoidable really, but too late to do so. :( Thanks, Paolo Alexander Graf (2): KVM: arm/arm64: Add ARM user space interrupt signaling ABI KVM: arm/arm64: Support arch timers with a userspace gic Alexey Kardashevskiy (11): KVM: PPC: Add MMIO emulation for stdx (store doubleword indexed) KVM: PPC: Book3S PR: Get rid of unused local variable KVM: PPC: Book3S PR: Exit KVM on failed mapping KVM: PPC: Book3S PR: Preserve storage control bits KVM: PPC: Align the table size to system page size KVM: PPC: Reserve KVM_CAP_SPAPR_TCE_VFIO capability number KVM: PPC: Enable IOMMU_API for KVM_BOOK3S_64 permanently KVM: PPC: Pass kvm* to kvmppc_find_table() KVM: PPC: Use preregistered memory API to access TCE list KVM: PPC: iommu: Unify TCE checking KVM: PPC: VFIO: Add in-kernel acceleration for VFIO Andrew Jones (2): KVM: arm/arm64: fix races in kvm_psci_vcpu_on KVM: add explicit barrier to kvm_vcpu_kick Bin Lu (1): KVM: PPC: Book3S: Add MMIO emulation for FP and VSX instructions Borislav Petkov (1): kvm/svm: Setup MCG_CAP on AMD properly Christian Borntraeger (6): KVM: s390: log runtime instrumentation enablement KVM: s390: Handle sthyi also for instruction intercept Merge remote-tracking branch 's390/guarded-storage' into kvms390/next KVM: s390: Fix sdnxo setting for nested guests KVM: s390: fix stale machine check data for guarded storage Merge branch 's390forkvm' of git://git.kernel.org/.../kvms390/linux Christoffer Dall (13): KVM: arm/arm64: vgic: Defer touching GICH_VMCR to vcpu_load/put KVM: arm/arm64: vgic: Get rid of live_lrs KVM: arm/arm64: vgic: Only set underflow when actually out of LRs KVM: arm/arm64: vgic: Get rid of unnecessary process_maintenance operation KVM: arm/arm64: vgic: Get rid of unnecessary save_maint_int_state KVM: arm/arm64: vgic: Get rid of MISR and EISR fields KVM: arm/arm64: vgic: Implement early VGIC init functionality KVM: arm/arm64: vgic: Don't check vgic_initialized in sync/flush KVM: arm/arm64: vgic: Improve sync_hwstate performance KVM: arm/arm64: Cleanup the arch timer code's irqchip checking KVM: arm/arm64: Report PMU overflow interrupts to userspace irqchip KVM: arm/arm64: Advertise support for KVM_CAP_ARM_USER_IRQ Merge remote-tracking branch 'rutland/kvm/common-sysreg' into next-fix David Hildenbrand (29): KVM: s390: use defines for execution controls KVM: nVMX: single function for switching between vmcs KVM: x86: fix user triggerable warning in kvm_apic_accept_events() KVM: x86: race between KVM_SET_GSI_ROUTING and KVM_CREATE_IRQCHIP KVM: x86: new irqchip mode KVM_IRQCHIP_INIT_IN_PROGRESS KVM: x86: check against irqchip_mode in kvm_set_routing_entry() KVM: x86: check against irqchip_mode in pic_in_kernel() KVM: x86: check against irqchip_mode in ioapic_in_kernel() KVM: x86: get rid of pic_irqchip() KVM: x86: get rid of ioapic_irqchip() KVM: x86: use ioapic_in_kernel() to check for ioapic existence KVM: x86: remove duplicate checks for ioapic KVM: x86: convert kvm_(set|get)_ioapic() into void KVM: x86: don't take kvm->irq_lock when creating IRQCHIP KVM: x86: push usage of slots_lock down KVM: x86: KVM_IRQCHIP_PIC_MASTER only has 8 pins KVM: x86: remove all-vcpu request from kvm_ioapic_init() KVM: x86: directly call kvm_make_scan_ioapic_request() in ioapic.c KVM: x86: rename kvm_vcpu_request_scan_ioapic() KVM: x86: drop goto label in kvm_set_routing_entry() KVM: x86: cleanup return handling in setup_routing_entry() KVM: x86: simplify pic_unlock() KVM: x86: make kvm_pic_reset() static KVM: x86: drop picdev_in_range() KVM: x86: set data directly in picdev_read() KVM: x86: simplify pic_ioport_read() KVM: x86: use irqchip_kernel() to check for pic+ioapic KVM: VMX: drop vmm_exclusive module parameter KVM: x86: don't hold kvm->lock in KVM_SET_GSI_ROUTING Denis Plotnikov (2): KVM: x86: remaster kvm_write_tsc code KVM: x86: fix maintaining of kvm_clock stability on guest CPU hotplug Fan Zhang (1): KVM: s390: gs support for kvm guests Farhan Ali (3): KVM: s390: Use defines for intercept code s390/sclp: Detect KSS facility KVM: s390: Support keyless subset guest mode Fei Li (2): KVM: s390: interface for suppressible I/O adapters KVM: s390: introduce ais mode modify function James Hogan (42): MIPS: Add defs & probing of UFR MIPS: Separate MAAR V bit into VL and VH for XPA MIPS: Probe guest CP0_UserLocal MIPS: Probe guest MVH MIPS: Add some missing guest CP0 accessors & defs MIPS: asm/tlb.h: Add UNIQUE_GUEST_ENTRYHI() macro KVM: MIPS: Implement HYPCALL emulation KVM: MIPS/Emulate: De-duplicate MMIO emulation KVM: MIPS/Emulate: Implement 64-bit MMIO emulation KVM: MIPS: Update kvm_lose_fpu() for VZ KVM: MIPS: Extend counters & events for VZ GExcCodes KVM: MIPS: Add VZ & TE capabilities KVM: MIPS: Add 64BIT capability KVM: MIPS: Init timer frequency from callback KVM: MIPS: Add callback to check extension KVM: MIPS: Add hardware_{enable,disable} callback KVM: MIPS: Add guest exit exception callback KVM: MIPS: Abstract guest CP0 register access for VZ KVM: MIPS/Entry: Update entry code to support VZ KVM: MIPS/TLB: Add VZ TLB management KVM: MIPS/Emulate: Update CP0_Compare emulation for VZ KVM: MIPS/Emulate: Drop CACHE emulation for VZ KVM: MIPS: Update exit handler for VZ KVM: MIPS: Implement VZ support KVM: MIPS: Add VZ support to build system KVM: MIPS/VZ: Support guest CP0_BadInstr[P] KVM: MIPS/VZ: Support guest CP0_[X]ContextConfig KVM: MIPS/VZ: Support guest segmentation control KVM: MIPS/VZ: Support guest hardware page table walker KVM: MIPS/VZ: Support guest load-linked bit KVM: MIPS/VZ: Emulate MAARs when necessary KVM: MIPS/VZ: Support hardware guest timer KVM: MIPS/VZ: Trace guest mode changes MIPS: Add Octeon III register accessors & definitions KVM: MIPS/Emulate: Adapt T&E CACHE emulation for Octeon KVM: MIPS/TLB: Handle virtually tagged icaches KVM: MIPS/T&E: Report correct dcache line size KVM: MIPS/VZ: VZ hardware setup for Octeon III KVM: MIPS/VZ: Emulate hit CACHE ops for Octeon III KVM: MIPS/VZ: Handle Octeon III guest.PRid register MIPS: Allow KVM to be enabled on Octeon CPUs KVM: MIPS/Emulate: Properly implement TLBR for T&E Jann Horn (1): KVM: Documentation: remove VM mmap documentation Jason J. Herne (1): s390: kvm: Cpu model support for msa6, msa7 and msa8 Jim Mattson (4): kvm: vmx: Don't use INVVPID when EPT is enabled kvm: nVMX: Disallow userspace-injected exceptions in guest mode kvm: nVMX: Remove superfluous VMX instruction fault checks kvm: nVMX: Don't validate disabled secondary controls Justin M. Forbes (1): tools/kvm: fix top level makefile Kyle Huey (1): KVM: x86: virtualize cpuid faulting Ladi Prosek (2): KVM: x86: Add MSR_AMD64_DC_CFG to the list of ignored MSRs KVM: x86: fix emulation of RSM and IRET instructions Marc Zyngier (45): arm64: KVM: PMU: Refactor pmu_*_el0_disabled arm64: KVM: PMU: Inject UNDEF exception on illegal register access arm64: KVM: PMU: Inject UNDEF on non-privileged accesses arm64: KVM: Make unexpected reads from WO registers inject an undef arm64: KVM: PMU: Inject UNDEF on read access to PMSWINC_EL0 arm64: KVM: Treat sysreg accessors returning false as successful arm64: KVM: Do not corrupt registers on failed 64bit CP read arm: KVM: Make unexpected register accesses inject an undef arm: KVM: Treat CP15 accessors returning false as successful arm64: hyp-stub: Stop pointlessly clobbering lr arm64: KVM: Move lr save/restore to do_el2_call arm64: hyp-stub: Don't save lr in the EL1 code arm64: hyp-stub: Define a return value for failed stub calls arm64: hyp-stub: Update documentation in asm/virt.h arm64: hyp-stub: Implement HVC_RESET_VECTORS stub hypercall arm64: KVM: Implement HVC_RESET_VECTORS stub hypercall in the init code arm64: KVM: Implement HVC_GET_VECTORS in the init code arm64: KVM: Allow the main HYP code to use the init hyp stub implementation arm64: KVM: Convert __cpu_reset_hyp_mode to using __hyp_reset_vectors arm64: KVM: Implement HVC_SOFT_RESTART in the init code ARM: KVM: Convert KVM to use HVC_GET_VECTORS ARM: Update cpu_v7_reset documentation ARM: hyp-stub: Use r1 for the soft-restart address ARM: Expose the VA/IDMAP offset ARM: hyp-stub: Define a return value for failed stub calls ARM: hyp-stub: Implement HVC_RESET_VECTORS stub hypercall ARM: KVM: Implement HVC_RESET_VECTORS stub hypercall in the init code ARM: KVM: Implement HVC_GET_VECTORS in the init code ARM: KVM: Allow the main HYP code to use the init hyp stub implementation ARM: KVM: Convert __cpu_reset_hyp_mode to using __hyp_reset_vectors ARM: KVM: Implement HVC_SOFT_RESTART in the init code ARM: KVM: Gracefully handle hyp-stubs being restored from under our feet arm/arm64: KVM: Use __hyp_reset_vectors() directly arm/arm64: KVM: Remove kvm_get_idmap_start arm/arm64: KVM: Use HVC_RESET_VECTORS to reinit HYP mode ARM: decompressor: Remove __hyp_get_vectors usage ARM: hyp-stub/KVM: Kill __hyp_get_vectors arm64: hyp-stub/KVM: Kill __hyp_get_vectors arm64: hyp-stub: Zero x0 on successful stub handling ARM: hyp-stub: Zero r0 on successful stub handling arm/arm64: Add hyp-stub API documentation KVM: arm/arm64: vgic-v3: De-optimize VMCR save/restore when emulating a GICv2 KVM: arm/arm64: vgic-v3: Fix off-by-one LR access ARM: hyp-stub: Fix Thumb-2 compilation ARM: KVM: Fix idmap stub entry when running Thumb-2 code Marcelo Tosatti (1): KVM: x86: remove irq disablement around KVM_SET_CLOCK/KVM_GET_CLOCK Mark Rutland (8): KVM: arm64: add SYS_DESC() KVM: arm64: Use common debug sysreg definitions KVM: arm64: Use common performance monitor sysreg definitions KVM: arm64: Use common GICv3 sysreg definitions KVM: arm64: Use common physical timer sysreg definitions KVM: arm64: use common invariant sysreg definitions KVM: arm64: Use common sysreg definitions KVM: arm64: Use common Set/Way sys definitions Markus Elfring (2): KVM: PPC: Book3S HV: Use common error handling code in kvmppc_clr_passthru_irq() KVM: PPC: e500: Use kcalloc() in e500_mmu_host_init() Michael S. Tsirkin (1): kvm: better MWAIT emulation for guests Paolo Bonzini (18): KVM: VMX: require virtual NMI support KVM: x86: drop legacy device assignment KVM: nVMX: we support 1GB EPT pages KVM: VMX: remove bogus check for invalid EPT violation kvm: x86: MMU support for EPT accessed/dirty bits kvm: nVMX: support EPT accessed/dirty bits KVM: VMX: add missing exit reasons KVM: nVMX: support RDRAND and RDSEED exiting kvm: make KVM_CAP_COALESCED_MMIO architecture agnostic kvm: make KVM_COALESCED_MMIO_PAGE_OFFSET public Merge branch 'x86/process' of git://git.kernel.org/.../tip/tip into HEAD Merge branch 'kvm-ppc-next' of git://git.kernel.org/.../paulus/powerpc into HEAD Merge tag 'kvm-s390-next-4.12-2' of git://git.kernel.org/.../kvms390/linux into HEAD Merge tag 'kvm-s390-next-4.12-3' of git://git.kernel.org/.../kvms390/linux into HEAD KVM: mark requests that need synchronization Merge tag 'kvm-arm-for-v4.12' of git://git.kernel.org/.../kvmarm/kvmarm into HEAD Revert "KVM: Support vCPU-based gfn->hva cache" KVM: put back #ifndef CONFIG_S390 around kvm_vcpu_kick Paul Mackerras (4): KVM: PPC: Provide functions for queueing up FP/VEC/VSX unavailable interrupts KVM: PPC: Emulation for more integer loads and stores KVM: PPC: Add MMIO emulation for remaining floating-point instructions Merge remote-tracking branch 'remotes/powerpc/topic/ppc-kvm' into kvm-ppc-next Radim Krčmář (9): Merge tag 'kvm_mips_4.12_1' of git://git.kernel.org/.../jhogan/kvm-mips Merge tag 'kvm-s390-next-4.12-1' of git://git.kernel.org/.../kvms390/linux KVM: nVMX: fix AD condition when handling EPT violation KVM: add kvm_{test,clear}_request to replace {test,clear}_bit KVM: x86: always use kvm_make_request instead of set_bit KVM: remove #ifndef CONFIG_S390 around kvm_vcpu_wake_up KVM: mark requests that do not need a wakeup KVM: perform a wake_up in kvm_make_all_cpus_request KVM: return if kvm_vcpu_wake_up() did wake up the VCPU Russell King (2): ARM: hyp-stub: improve ABI ARM: soft-reboot into same mode that we entered the kernel Shih-Wei Li (1): KVM: arm/arm64: vgic: Avoid flushing vgic state when there's no pending IRQ Stefan Raspl (17): tools/kvm_stat: hide cursor tools/kvm_stat: catch curses exceptions only tools/kvm_stat: handle SIGINT in log and batch modes tools/kvm_stat: fix misc glitches tools/kvm_stat: fix trace setup glitch on field updates in TracepointProvider tools/kvm_stat: full PEP8 compliance tools/kvm_stat: reduce perceived idle time on filter updates tools/kvm_stat: document list of interactive commands tools/kvm_stat: display guest name when using pid filter tools/kvm_stat: remove pid filter on empty input tools/kvm_stat: print error messages on faulty pid filter input tools/kvm_stat: display regex when set to non-default tools/kvm_stat: remove regex filter on empty input tools/kvm_stat: add option '--guest' tools/kvm_stat: add interactive command 'c' tools/kvm_stat: add interactive command 'r' tools/kvm_stat: add '%Total' column Suzuki K Poulose (1): kvm: arm/arm64: Rework gpa callback handlers Thomas Huth (1): KVM: PPC: Book3S PR: Do not fail emulation with mtspr/mfspr for unknown SPRs Wanpeng Li (1): x86/kvm: virt_xxx memory barriers instead of mandatory barriers Yi Min Zhao (2): KVM: s390: introduce adapter interrupt inject function KVM: s390: introduce AIS capability Documentation/virtual/kvm/api.txt | 430 +-- Documentation/virtual/kvm/arm/hyp-abi.txt | 53 + Documentation/virtual/kvm/devices/s390_flic.txt | 41 +- Documentation/virtual/kvm/devices/vfio.txt | 18 +- Documentation/virtual/kvm/devices/vm.txt | 3 +- Documentation/virtual/kvm/hypercalls.txt | 5 + arch/arm/boot/compressed/head.S | 12 +- arch/arm/include/asm/kvm_asm.h | 7 +- arch/arm/include/asm/kvm_host.h | 9 +- arch/arm/include/asm/kvm_mmu.h | 1 - arch/arm/include/asm/proc-fns.h | 4 +- arch/arm/include/asm/virt.h | 14 +- arch/arm/include/uapi/asm/kvm.h | 4 + arch/arm/kernel/hyp-stub.S | 43 +- arch/arm/kernel/reboot.c | 7 +- arch/arm/kvm/arm.c | 69 +- arch/arm/kvm/coproc.c | 24 +- arch/arm/kvm/coproc.h | 18 - arch/arm/kvm/handle_exit.c | 8 + arch/arm/kvm/hyp/hyp-entry.S | 28 +- arch/arm/kvm/init.S | 51 +- arch/arm/kvm/interrupts.S | 4 - arch/arm/kvm/mmu.c | 36 +- arch/arm/kvm/psci.c | 8 +- arch/arm/mm/mmu.c | 5 + arch/arm/mm/proc-v7.S | 15 +- arch/arm64/include/asm/arch_gicv3.h | 81 +- arch/arm64/include/asm/kvm_asm.h | 5 +- arch/arm64/include/asm/kvm_host.h | 10 +- arch/arm64/include/asm/kvm_mmu.h | 1 - arch/arm64/include/asm/sysreg.h | 162 +- arch/arm64/include/asm/virt.h | 31 +- arch/arm64/include/uapi/asm/kvm.h | 4 + arch/arm64/kernel/head.S | 8 +- arch/arm64/kernel/hyp-stub.S | 38 +- arch/arm64/kvm/hyp-init.S | 46 +- arch/arm64/kvm/hyp.S | 5 +- arch/arm64/kvm/hyp/hyp-entry.S | 43 +- arch/arm64/kvm/sys_regs.c | 496 ++-- arch/arm64/kvm/sys_regs.h | 23 +- arch/arm64/kvm/sys_regs_generic_v8.c | 4 +- arch/mips/Kconfig | 1 + arch/mips/include/asm/cpu-features.h | 10 + arch/mips/include/asm/cpu-info.h | 2 + arch/mips/include/asm/cpu.h | 1 + arch/mips/include/asm/kvm_host.h | 468 +++- arch/mips/include/asm/maar.h | 10 +- arch/mips/include/asm/mipsregs.h | 62 +- arch/mips/include/asm/tlb.h | 6 +- arch/mips/include/uapi/asm/inst.h | 2 +- arch/mips/include/uapi/asm/kvm.h | 22 +- arch/mips/kernel/cpu-probe.c | 13 +- arch/mips/kernel/time.c | 1 + arch/mips/kvm/Kconfig | 27 +- arch/mips/kvm/Makefile | 9 +- arch/mips/kvm/emulate.c | 502 ++-- arch/mips/kvm/entry.c | 132 +- arch/mips/kvm/hypcall.c | 53 + arch/mips/kvm/interrupt.h | 5 + arch/mips/kvm/mips.c | 123 +- arch/mips/kvm/mmu.c | 20 + arch/mips/kvm/tlb.c | 441 ++++ arch/mips/kvm/trace.h | 74 +- arch/mips/kvm/trap_emul.c | 73 +- arch/mips/kvm/vz.c | 3223 +++++++++++++++++++++++ arch/mips/mm/cache.c | 1 + arch/mips/mm/init.c | 2 +- arch/powerpc/include/asm/disassemble.h | 5 + arch/powerpc/include/asm/iommu.h | 32 +- arch/powerpc/include/asm/kvm_host.h | 35 +- arch/powerpc/include/asm/kvm_ppc.h | 22 +- arch/powerpc/include/asm/mmu_context.h | 4 + arch/powerpc/include/asm/ppc-opcode.h | 58 + arch/powerpc/include/uapi/asm/kvm.h | 3 + arch/powerpc/kernel/iommu.c | 91 +- arch/powerpc/kvm/Kconfig | 1 + arch/powerpc/kvm/book3s.c | 18 + arch/powerpc/kvm/book3s_64_mmu.c | 1 + arch/powerpc/kvm/book3s_64_mmu_host.c | 7 +- arch/powerpc/kvm/book3s_64_vio.c | 315 ++- arch/powerpc/kvm/book3s_64_vio_hv.c | 303 ++- arch/powerpc/kvm/book3s_emulate.c | 34 +- arch/powerpc/kvm/book3s_hv.c | 8 +- arch/powerpc/kvm/book3s_pr.c | 14 +- arch/powerpc/kvm/book3s_pr_papr.c | 2 +- arch/powerpc/kvm/booke.c | 9 +- arch/powerpc/kvm/e500_mmu_host.c | 5 +- arch/powerpc/kvm/emulate.c | 8 + arch/powerpc/kvm/emulate_loadstore.c | 472 +++- arch/powerpc/kvm/powerpc.c | 327 ++- arch/powerpc/mm/mmu_context_iommu.c | 39 + arch/powerpc/platforms/powernv/pci-ioda.c | 46 +- arch/powerpc/platforms/powernv/pci.c | 1 + arch/powerpc/platforms/pseries/iommu.c | 3 +- arch/powerpc/platforms/pseries/vio.c | 2 +- arch/s390/include/asm/elf.h | 1 + arch/s390/include/asm/kvm_host.h | 42 +- arch/s390/include/asm/lowcore.h | 9 +- arch/s390/include/asm/nmi.h | 12 +- arch/s390/include/asm/processor.h | 5 + arch/s390/include/asm/sclp.h | 1 + arch/s390/include/asm/setup.h | 2 + arch/s390/include/asm/switch_to.h | 3 + arch/s390/include/asm/thread_info.h | 12 +- arch/s390/include/uapi/asm/Kbuild | 1 + arch/s390/include/uapi/asm/guarded_storage.h | 77 + arch/s390/include/uapi/asm/kvm.h | 29 +- arch/s390/include/uapi/asm/unistd.h | 2 +- arch/s390/kernel/Makefile | 2 +- arch/s390/kernel/asm-offsets.c | 2 +- arch/s390/kernel/compat_wrapper.c | 1 + arch/s390/kernel/early.c | 2 + arch/s390/kernel/entry.S | 26 +- arch/s390/kernel/entry.h | 2 + arch/s390/kernel/guarded_storage.c | 128 + arch/s390/kernel/machine_kexec.c | 13 +- arch/s390/kernel/nmi.c | 19 +- arch/s390/kernel/process.c | 7 +- arch/s390/kernel/processor.c | 2 +- arch/s390/kernel/ptrace.c | 86 +- arch/s390/kernel/setup.c | 18 +- arch/s390/kernel/smp.c | 43 +- arch/s390/kernel/syscalls.S | 2 +- arch/s390/kvm/gaccess.c | 6 +- arch/s390/kvm/intercept.c | 27 +- arch/s390/kvm/interrupt.c | 137 +- arch/s390/kvm/kvm-s390.c | 141 +- arch/s390/kvm/kvm-s390.h | 4 +- arch/s390/kvm/priv.c | 50 +- arch/s390/kvm/sthyi.c | 3 + arch/s390/kvm/trace-s390.h | 52 + arch/s390/kvm/vsie.c | 78 +- arch/s390/tools/gen_facilities.c | 1 + arch/um/include/shared/os.h | 4 +- arch/x86/entry/syscalls/syscall_32.tbl | 1 + arch/x86/include/asm/cpufeatures.h | 1 + arch/x86/include/asm/kvm_emulate.h | 4 +- arch/x86/include/asm/kvm_host.h | 15 +- arch/x86/include/asm/kvm_page_track.h | 1 + arch/x86/include/asm/msr-index.h | 11 +- arch/x86/include/asm/processor.h | 2 + arch/x86/include/asm/proto.h | 4 +- arch/x86/include/asm/thread_info.h | 6 +- arch/x86/include/asm/tlbflush.h | 10 + arch/x86/include/asm/vmx.h | 4 + arch/x86/include/uapi/asm/kvm.h | 3 + arch/x86/include/uapi/asm/prctl.h | 11 +- arch/x86/include/uapi/asm/vmx.h | 25 +- arch/x86/kernel/cpu/intel.c | 40 +- arch/x86/kernel/kvm.c | 4 +- arch/x86/kernel/process.c | 151 +- arch/x86/kernel/process_32.c | 7 + arch/x86/kernel/process_64.c | 48 +- arch/x86/kernel/ptrace.c | 8 +- arch/x86/kvm/Kconfig | 12 - arch/x86/kvm/Makefile | 2 - arch/x86/kvm/assigned-dev.c | 1058 -------- arch/x86/kvm/assigned-dev.h | 32 - arch/x86/kvm/cpuid.c | 3 + arch/x86/kvm/cpuid.h | 11 + arch/x86/kvm/emulate.c | 23 +- arch/x86/kvm/i8259.c | 75 +- arch/x86/kvm/ioapic.c | 31 +- arch/x86/kvm/ioapic.h | 16 +- arch/x86/kvm/iommu.c | 356 --- arch/x86/kvm/irq.c | 2 +- arch/x86/kvm/irq.h | 32 +- arch/x86/kvm/irq_comm.c | 50 +- arch/x86/kvm/lapic.c | 22 +- arch/x86/kvm/mmu.c | 4 +- arch/x86/kvm/mmu.h | 3 +- arch/x86/kvm/page_track.c | 8 + arch/x86/kvm/paging_tmpl.h | 54 +- arch/x86/kvm/svm.c | 17 +- arch/x86/kvm/vmx.c | 376 +-- arch/x86/kvm/x86.c | 263 +- arch/x86/kvm/x86.h | 36 + arch/x86/um/Makefile | 2 +- arch/x86/um/asm/ptrace.h | 2 +- arch/x86/um/os-Linux/prctl.c | 4 +- arch/x86/um/syscalls_32.c | 7 + arch/x86/um/syscalls_64.c | 20 +- drivers/gpio/gpio-altera-a10sr.c | 2 +- drivers/gpio/gpio-altera.c | 26 +- drivers/gpio/gpio-mcp23s08.c | 65 +- drivers/gpio/gpio-mockup.c | 7 +- drivers/gpio/gpio-xgene.c | 13 +- drivers/hid/Kconfig | 5 +- drivers/hid/hid-chicony.c | 1 + drivers/hid/hid-core.c | 2 + drivers/hid/hid-corsair.c | 47 + drivers/hid/hid-ids.h | 4 + drivers/hid/hid-sony.c | 2 + drivers/hid/usbhid/hid-quirks.c | 3 + drivers/hid/wacom_sys.c | 4 +- drivers/hid/wacom_wac.c | 10 +- drivers/ptp/ptp_kvm.c | 5 +- drivers/remoteproc/Kconfig | 6 +- drivers/s390/char/sclp_early.c | 4 +- drivers/scsi/Kconfig | 14 - drivers/scsi/hpsa.c | 53 +- drivers/scsi/hpsa.h | 1 + drivers/scsi/hpsa_cmd.h | 2 + drivers/scsi/lpfc/lpfc_attr.c | 4 +- drivers/scsi/lpfc/lpfc_init.c | 7 + drivers/scsi/lpfc/lpfc_nvme.c | 8 +- drivers/scsi/lpfc/lpfc_nvmet.c | 8 +- drivers/scsi/megaraid/megaraid_sas.h | 4 +- drivers/scsi/megaraid/megaraid_sas_base.c | 17 +- drivers/scsi/megaraid/megaraid_sas_fusion.c | 4 +- drivers/scsi/ufs/ufshcd.c | 2 +- drivers/tty/serial/st-asc.c | 11 +- drivers/vfio/vfio_iommu_spapr_tce.c | 2 +- fs/exec.c | 1 + fs/f2fs/debug.c | 1 + fs/f2fs/dir.c | 2 +- fs/f2fs/f2fs.h | 2 + fs/f2fs/node.c | 163 +- fs/f2fs/segment.c | 6 + include/kvm/arm_arch_timer.h | 2 + include/kvm/arm_pmu.h | 7 + include/kvm/arm_vgic.h | 9 +- include/linux/compat.h | 2 + include/linux/gpio/consumer.h | 16 - include/linux/kvm_host.h | 78 +- include/linux/thread_info.h | 4 + include/uapi/linux/elf.h | 1 + include/uapi/linux/kvm.h | 25 + mm/swap_slots.c | 2 - scripts/checksyscalls.sh | 1 + tools/Makefile | 5 +- tools/arch/s390/include/uapi/asm/kvm.h | 3 +- tools/kvm/kvm_stat/kvm_stat | 381 ++- tools/kvm/kvm_stat/kvm_stat.txt | 26 + virt/kvm/arm/arch_timer.c | 124 +- virt/kvm/arm/hyp/vgic-v2-sr.c | 78 +- virt/kvm/arm/hyp/vgic-v3-sr.c | 87 +- virt/kvm/arm/pmu.c | 39 +- virt/kvm/arm/vgic/vgic-init.c | 108 +- virt/kvm/arm/vgic/vgic-v2.c | 90 +- virt/kvm/arm/vgic/vgic-v3.c | 87 +- virt/kvm/arm/vgic/vgic.c | 60 +- virt/kvm/arm/vgic/vgic.h | 8 +- virt/kvm/eventfd.c | 7 +- virt/kvm/irqchip.c | 16 +- virt/kvm/kvm_main.c | 146 +- virt/kvm/vfio.c | 105 + 247 files changed, 10665 insertions(+), 4321 deletions(-) create mode 100644 Documentation/virtual/kvm/arm/hyp-abi.txt create mode 100644 arch/mips/kvm/hypcall.c create mode 100644 arch/mips/kvm/vz.c create mode 100644 arch/s390/include/uapi/asm/guarded_storage.h create mode 100644 arch/s390/kernel/guarded_storage.c delete mode 100644 arch/x86/kvm/assigned-dev.c delete mode 100644 arch/x86/kvm/assigned-dev.h delete mode 100644 arch/x86/kvm/iommu.c create mode 100644 arch/x86/um/syscalls_32.c