[GIT PULL] First batch of KVM changes for 4.12 merge window

From: Paolo Bonzini
Date: Mon May 08 2017 - 10:00:35 EST


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