[PATCH 00/23] arm64: 4.9 backport of the SSBD mitigation patches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is the backport of the arm64 SSBD patches to 4.9. I've had to
cherry-pick a number of dependencies:

- The ldr_this_cpu macro
- parts of the SDEI series that allow tpidr_el2 to be used as the
  per-cpu offset
- one patch from the VHE series that introduce vcpu retrieval as a
  per-cpu variable
- one patch from the the EL2 randomisation series, allowing relative
  addressing of global structures
- the dynamic patching infrastructure

Christoffer Dall (1):
  KVM: arm64: Avoid storing the vcpu pointer on the stack

James Morse (5):
  KVM: arm64: Store vcpu on the stack during __guest_enter()
  KVM: arm/arm64: Convert kvm_host_cpu_state to a static per-cpu
    allocation
  KVM: arm64: Change hyp_panic()s dependency on tpidr_el2
  arm64: alternatives: use tpidr_el2 on VHE hosts
  KVM: arm64: Stop save/restoring host tpidr_el1 on VHE

Marc Zyngier (16):
  arm64: alternatives: Add dynamic patching feature
  KVM: arm/arm64: Do not use kern_hyp_va() with kvm_vgic_global_state
  arm/arm64: smccc: Add SMCCC-specific return codes
  arm64: Call ARCH_WORKAROUND_2 on transitions between EL0 and EL1
  arm64: Add per-cpu infrastructure to call ARCH_WORKAROUND_2
  arm64: Add ARCH_WORKAROUND_2 probing
  arm64: Add 'ssbd' command-line option
  arm64: ssbd: Add global mitigation state accessor
  arm64: ssbd: Skip apply_ssbd if not using dynamic mitigation
  arm64: ssbd: Restore mitigation status on CPU resume
  arm64: ssbd: Introduce thread flag to control userspace mitigation
  arm64: ssbd: Add prctl interface for per-thread mitigation
  arm64: KVM: Add HYP per-cpu accessors
  arm64: KVM: Add ARCH_WORKAROUND_2 support for guests
  arm64: KVM: Handle guest's ARCH_WORKAROUND_2 requests
  arm64: KVM: Add ARCH_WORKAROUND_2 discovery through
    ARCH_FEATURES_FUNC_ID

Mark Rutland (1):
  arm64: assembler: introduce ldr_this_cpu

 Documentation/kernel-parameters.txt  |  17 +++
 arch/arm/include/asm/kvm_host.h      |  12 ++
 arch/arm/include/asm/kvm_mmu.h       |  12 ++
 arch/arm/kvm/arm.c                   |  24 ++--
 arch/arm/kvm/psci.c                  |  18 ++-
 arch/arm64/Kconfig                   |   9 ++
 arch/arm64/include/asm/alternative.h |  43 ++++++-
 arch/arm64/include/asm/assembler.h   |  27 +++-
 arch/arm64/include/asm/cpucaps.h     |   3 +-
 arch/arm64/include/asm/cpufeature.h  |  22 ++++
 arch/arm64/include/asm/kvm_asm.h     |  41 ++++++
 arch/arm64/include/asm/kvm_host.h    |  43 +++++++
 arch/arm64/include/asm/kvm_mmu.h     |  44 +++++++
 arch/arm64/include/asm/percpu.h      |  12 +-
 arch/arm64/include/asm/thread_info.h |   1 +
 arch/arm64/kernel/Makefile           |   1 +
 arch/arm64/kernel/alternative.c      |  54 +++++---
 arch/arm64/kernel/asm-offsets.c      |   2 +
 arch/arm64/kernel/cpu_errata.c       | 180 +++++++++++++++++++++++++++
 arch/arm64/kernel/cpufeature.c       |  17 +++
 arch/arm64/kernel/entry.S            |  32 ++++-
 arch/arm64/kernel/hibernate.c        |  11 ++
 arch/arm64/kernel/ssbd.c             | 108 ++++++++++++++++
 arch/arm64/kernel/suspend.c          |   8 ++
 arch/arm64/kvm/hyp-init.S            |   4 +
 arch/arm64/kvm/hyp/entry.S           |  12 +-
 arch/arm64/kvm/hyp/hyp-entry.S       |  62 +++++++--
 arch/arm64/kvm/hyp/switch.c          |  64 +++++++---
 arch/arm64/kvm/hyp/sysreg-sr.c       |  21 ++--
 arch/arm64/kvm/reset.c               |   4 +
 include/linux/arm-smccc.h            |  10 ++
 virt/kvm/arm/hyp/vgic-v2-sr.c        |   2 +-
 32 files changed, 835 insertions(+), 85 deletions(-)
 create mode 100644 arch/arm64/kernel/ssbd.c

-- 
2.18.0




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux