[GIT PULL] Second batch of KVM changes for Linux 5.9

From: Paolo Bonzini
Date: Wed Aug 12 2020 - 04:29:49 EST


Linus,

The following changes since commit 06a81c1c7db9bd5de0bd38cd5acc44bb22b99150:

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux (2020-08-08 14:16:12 -0700)

are available in the Git repository at:

https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus

for you to fetch changes up to e792415c5d3e0eb52527cce228a72e4392f8cae2:

KVM: MIPS/VZ: Fix build error caused by 'kvm_run' cleanup (2020-08-11 07:19:41 -0400)

----------------------------------------------------------------
PPC:
* Improvements and bugfixes for secure VM support, giving reduced startup
time and memory hotplug support.
* Locking fixes in nested KVM code
* Increase number of guests supported by HV KVM to 4094
* Preliminary POWER10 support

ARM:
* Split the VHE and nVHE hypervisor code bases, build the EL2 code
separately, allowing for the VHE code to now be built with instrumentation
* Level-based TLB invalidation support
* Restructure of the vcpu register storage to accomodate the NV code
* Pointer Authentication available for guests on nVHE hosts
* Simplification of the system register table parsing
* MMU cleanups and fixes
* A number of post-32bit cleanups and other fixes

MIPS:
* compilation fixes

x86:
* bugfixes
* support for the SERIALIZE instruction

----------------------------------------------------------------
Alexander Graf (2):
KVM: arm64: vgic-its: Change default outer cacheability for {PEND, PROP}BASER
KVM: arm: Add trace name for ARM_NISV

Alexey Kardashevskiy (1):
KVM: PPC: Protect kvm_vcpu_read_guest with srcu locks

Alistair Popple (1):
KVM: PPC: Book3SHV: Enable support for ISA v3.1 guests

Andrew Scull (3):
arm64: kvm: Remove kern_hyp_va from get_vcpu_ptr
KVM: arm64: Handle calls to prefixed hyp functions
KVM: arm64: Move hyp-init.S to nVHE

Christoffer Dall (1):
KVM: arm64: Factor out stage 2 page table data from struct kvm

Cédric Le Goater (1):
KVM: PPC: Book3S HV: Increase KVMPPC_NR_LPIDS on POWER8 and POWER9

David Brazdil (16):
KVM: arm64: Fix symbol dependency in __hyp_call_panic_nvhe
KVM: arm64: Move __smccc_workaround_1_smc to .rodata
KVM: arm64: Add build rules for separate VHE/nVHE object files
KVM: arm64: Use build-time defines in has_vhe()
KVM: arm64: Build hyp-entry.S separately for VHE/nVHE
KVM: arm64: Duplicate hyp/tlb.c for VHE/nVHE
KVM: arm64: Split hyp/switch.c to VHE/nVHE
KVM: arm64: Split hyp/debug-sr.c to VHE/nVHE
KVM: arm64: Split hyp/sysreg-sr.c to VHE/nVHE
KVM: arm64: Duplicate hyp/timer-sr.c for VHE/nVHE
KVM: arm64: Compile remaining hyp/ files for both VHE/nVHE
KVM: arm64: Remove __hyp_text macro, use build rules instead
KVM: arm64: Lift instrumentation restrictions on VHE
KVM: arm64: Make nVHE ASLR conditional on RANDOMIZE_BASE
KVM: arm64: Substitute RANDOMIZE_BASE for HARDEN_EL2_VECTORS
KVM: arm64: Ensure that all nVHE hyp code is in .hyp.text

Gavin Shan (1):
KVM: arm64: Rename HSR to ESR

Huacai Chen (1):
MIPS: VZ: Only include loongson_regs.h for CPU_LOONGSON64

James Morse (5):
KVM: arm64: Drop the target_table[] indirection
KVM: arm64: Tolerate an empty target_table list
KVM: arm64: Move ACTLR_EL1 emulation to the sys_reg_descs array
KVM: arm64: Remove target_table from exit handlers
KVM: arm64: Remove the target table

Jiaxun Yang (1):
MIPS: KVM: Convert a fallthrough comment to fallthrough

Jon Doron (1):
x86/kvm/hyper-v: Synic default SCONTROL MSR needs to be enabled

Laurent Dufour (3):
KVM: PPC: Book3S HV: Migrate hot plugged memory
KVM: PPC: Book3S HV: Move kvmppc_svm_page_out up
KVM: PPC: Book3S HV: Rework secure mem slot dropping

Marc Zyngier (28):
KVM: arm64: Enable Address Authentication at EL2 if available
KVM: arm64: Allow ARM64_PTR_AUTH when ARM64_VHE=n
KVM: arm64: Allow PtrAuth to be enabled from userspace on non-VHE systems
KVM: arm64: Check HCR_EL2 instead of shadow copy to swap PtrAuth registers
KVM: arm64: Simplify PtrAuth alternative patching
KVM: arm64: Allow in-atomic injection of SPIs
Merge branch 'kvm-arm64/ttl-for-arm64' into HEAD
KVM: arm64: Use TTL hint in when invalidating stage-2 translations
KVM: arm64: Introduce accessor for ctxt->sys_reg
KVM: arm64: hyp: Use ctxt_sys_reg/__vcpu_sys_reg instead of raw sys_regs access
KVM: arm64: sve: Use __vcpu_sys_reg() instead of raw sys_regs access
KVM: arm64: pauth: Use ctxt_sys_reg() instead of raw sys_regs access
KVM: arm64: debug: Drop useless vpcu parameter
KVM: arm64: Make struct kvm_regs userspace-only
KVM: arm64: Move ELR_EL1 to the system register array
KVM: arm64: Move SP_EL1 to the system register array
KVM: arm64: Disintegrate SPSR array
KVM: arm64: Move SPSR_EL1 to the system register array
KVM: arm64: timers: Rename kvm_timer_sync_hwstate to kvm_timer_sync_user
KVM: arm64: timers: Move timer registers to the sys_regs file
KVM: arm64: Don't use has_vhe() for CHOOSE_HYP_SYM()
Merge branch 'kvm-arm64/el2-obj-v4.1' into kvmarm-master/next-WIP
Merge branch 'kvm-arm64/pre-nv-5.9' into kvmarm-master/next-WIP
Merge branch 'kvm-arm64/ptrauth-nvhe' into kvmarm-master/next-WIP
Merge branch 'kvm-arm64/target-table-no-more' into kvmarm-master/next-WIP
Merge branch 'kvm-arm64/misc-5.9' into kvmarm-master/next-WIP
Merge branch 'kvm-arm64/el2-obj-v4.1' into kvmarm-master/next
Merge branch 'kvm-arm64/misc-5.9' into kvmarm-master/next

Paolo Bonzini (3):
Merge tag 'kvmarm-5.9' of git://git.kernel.org/.../kvmarm/kvmarm into kvm-next-5.6
x86: Expose SERIALIZE for supported cpuid
Merge tag 'kvm-ppc-next-5.9-1' of git://git.kernel.org/.../paulus/powerpc into kvm-next-5.6

Peng Hao (1):
KVM: arm64: Drop long gone function parameter documentation

Ram Pai (4):
KVM: PPC: Book3S HV: Fix function definition in book3s_hv_uvmem.c
KVM: PPC: Book3S HV: Disable page merging in H_SVM_INIT_START
KVM: PPC: Book3S HV: Track the state GFNs associated with secure VMs
KVM: PPC: Book3S HV: In H_SVM_INIT_DONE, migrate remaining normal-GFNs to secure-GFNs

Sean Christopherson (1):
KVM: x86: Don't attempt to load PDPTRs when 64-bit mode is enabled

Tianjia Zhang (1):
KVM: PPC: Clean up redundant kvm_run parameters in assembly

Will Deacon (4):
KVM: arm64: Rename kvm_vcpu_dabt_isextabt()
KVM: arm64: Handle data and instruction external aborts the same way
KVM: arm64: Don't skip cache maintenance for read-only memslots
KVM: arm64: Move S1PTW S2 fault logic out of io_mem_abort()

Xingxing Su (1):
KVM: MIPS/VZ: Fix build error caused by 'kvm_run' cleanup

Documentation/powerpc/ultravisor.rst | 3 +
arch/arm64/Kconfig | 20 +-
arch/arm64/include/asm/kvm_asm.h | 75 +-
arch/arm64/include/asm/kvm_coproc.h | 8 -
arch/arm64/include/asm/kvm_emulate.h | 75 +-
arch/arm64/include/asm/kvm_host.h | 94 ++-
arch/arm64/include/asm/kvm_hyp.h | 15 +-
arch/arm64/include/asm/kvm_mmu.h | 16 +-
arch/arm64/include/asm/kvm_ptrauth.h | 34 +-
arch/arm64/include/asm/mmu.h | 7 -
arch/arm64/include/asm/virt.h | 13 +-
arch/arm64/kernel/asm-offsets.c | 3 +-
arch/arm64/kernel/cpu_errata.c | 4 +-
arch/arm64/kernel/image-vars.h | 54 ++
arch/arm64/kvm/Kconfig | 2 +-
arch/arm64/kvm/Makefile | 4 +-
arch/arm64/kvm/arch_timer.c | 157 +++-
arch/arm64/kvm/arm.c | 57 +-
arch/arm64/kvm/fpsimd.c | 6 +-
arch/arm64/kvm/guest.c | 79 +-
arch/arm64/kvm/handle_exit.c | 32 +-
arch/arm64/kvm/hyp/Makefile | 24 +-
arch/arm64/kvm/hyp/aarch32.c | 8 +-
arch/arm64/kvm/hyp/entry.S | 4 +-
arch/arm64/kvm/hyp/fpsimd.S | 1 -
arch/arm64/kvm/hyp/hyp-entry.S | 21 +-
.../kvm/hyp/{debug-sr.c => include/hyp/debug-sr.h} | 88 +-
arch/arm64/kvm/hyp/include/hyp/switch.h | 511 +++++++++++
arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 193 +++++
arch/arm64/kvm/hyp/nvhe/Makefile | 62 ++
arch/arm64/kvm/hyp/nvhe/debug-sr.c | 77 ++
arch/arm64/kvm/{ => hyp/nvhe}/hyp-init.S | 5 +
arch/arm64/kvm/hyp/nvhe/switch.c | 272 ++++++
arch/arm64/kvm/hyp/nvhe/sysreg-sr.c | 46 +
arch/arm64/kvm/hyp/{ => nvhe}/timer-sr.c | 6 +-
arch/arm64/kvm/hyp/nvhe/tlb.c | 154 ++++
arch/arm64/kvm/hyp/smccc_wa.S | 32 +
arch/arm64/kvm/hyp/switch.c | 936 ---------------------
arch/arm64/kvm/hyp/sysreg-sr.c | 333 --------
arch/arm64/kvm/hyp/tlb.c | 242 ------
arch/arm64/kvm/hyp/vgic-v2-cpuif-proxy.c | 4 +-
arch/arm64/kvm/hyp/vgic-v3-sr.c | 134 ++-
arch/arm64/kvm/hyp/vhe/Makefile | 11 +
arch/arm64/kvm/hyp/vhe/debug-sr.c | 26 +
arch/arm64/kvm/hyp/vhe/switch.c | 219 +++++
arch/arm64/kvm/hyp/vhe/sysreg-sr.c | 114 +++
arch/arm64/kvm/hyp/vhe/timer-sr.c | 12 +
arch/arm64/kvm/hyp/vhe/tlb.c | 162 ++++
arch/arm64/kvm/inject_fault.c | 2 +-
arch/arm64/kvm/mmio.c | 6 -
arch/arm64/kvm/mmu.c | 311 ++++---
arch/arm64/kvm/regmap.c | 37 +-
arch/arm64/kvm/reset.c | 23 +-
arch/arm64/kvm/sys_regs.c | 207 ++---
arch/arm64/kvm/sys_regs_generic_v8.c | 96 ---
arch/arm64/kvm/trace_arm.h | 8 +-
arch/arm64/kvm/va_layout.c | 2 +-
arch/arm64/kvm/vgic/vgic-irqfd.c | 24 +-
arch/arm64/kvm/vgic/vgic-its.c | 3 +-
arch/arm64/kvm/vgic/vgic-mmio-v3.c | 2 +-
arch/mips/kvm/emulate.c | 2 +-
arch/mips/kvm/vz.c | 5 +-
arch/powerpc/include/asm/kvm_book3s_uvmem.h | 14 +
arch/powerpc/include/asm/kvm_ppc.h | 2 +-
arch/powerpc/include/asm/reg.h | 4 +-
arch/powerpc/kvm/book3s_64_mmu_hv.c | 8 +-
arch/powerpc/kvm/book3s_64_mmu_radix.c | 4 +
arch/powerpc/kvm/book3s_hv.c | 26 +-
arch/powerpc/kvm/book3s_hv_nested.c | 30 +-
arch/powerpc/kvm/book3s_hv_uvmem.c | 700 +++++++++++----
arch/powerpc/kvm/book3s_interrupts.S | 56 +-
arch/powerpc/kvm/book3s_pr.c | 9 +-
arch/powerpc/kvm/book3s_rtas.c | 2 +
arch/powerpc/kvm/booke.c | 9 +-
arch/powerpc/kvm/booke_interrupts.S | 9 +-
arch/powerpc/kvm/bookehv_interrupts.S | 10 +-
arch/powerpc/kvm/powerpc.c | 5 +-
arch/x86/kvm/cpuid.c | 3 +-
arch/x86/kvm/hyperv.c | 1 +
arch/x86/kvm/x86.c | 24 +-
include/kvm/arm_arch_timer.h | 13 +-
include/trace/events/kvm.h | 2 +-
scripts/kallsyms.c | 1 +
83 files changed, 3479 insertions(+), 2636 deletions(-)
rename arch/arm64/kvm/hyp/{debug-sr.c => include/hyp/debug-sr.h} (66%)
create mode 100644 arch/arm64/kvm/hyp/include/hyp/switch.h
create mode 100644 arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h
create mode 100644 arch/arm64/kvm/hyp/nvhe/Makefile
create mode 100644 arch/arm64/kvm/hyp/nvhe/debug-sr.c
rename arch/arm64/kvm/{ => hyp/nvhe}/hyp-init.S (95%)
create mode 100644 arch/arm64/kvm/hyp/nvhe/switch.c
create mode 100644 arch/arm64/kvm/hyp/nvhe/sysreg-sr.c
rename arch/arm64/kvm/hyp/{ => nvhe}/timer-sr.c (84%)
create mode 100644 arch/arm64/kvm/hyp/nvhe/tlb.c
create mode 100644 arch/arm64/kvm/hyp/smccc_wa.S
delete mode 100644 arch/arm64/kvm/hyp/switch.c
delete mode 100644 arch/arm64/kvm/hyp/sysreg-sr.c
delete mode 100644 arch/arm64/kvm/hyp/tlb.c
create mode 100644 arch/arm64/kvm/hyp/vhe/Makefile
create mode 100644 arch/arm64/kvm/hyp/vhe/debug-sr.c
create mode 100644 arch/arm64/kvm/hyp/vhe/switch.c
create mode 100644 arch/arm64/kvm/hyp/vhe/sysreg-sr.c
create mode 100644 arch/arm64/kvm/hyp/vhe/timer-sr.c
create mode 100644 arch/arm64/kvm/hyp/vhe/tlb.c
delete mode 100644 arch/arm64/kvm/sys_regs_generic_v8.c