[PATCH 00/22] arm64: 4.14 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.14. I've had to
cherry-pick a number of dependencies:

- 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

 .../admin-guide/kernel-parameters.txt         |  17 ++
 arch/arm/include/asm/kvm_host.h               |  12 ++
 arch/arm/include/asm/kvm_mmu.h                |  12 ++
 arch/arm64/Kconfig                            |   9 +
 arch/arm64/include/asm/alternative.h          |  43 ++++-
 arch/arm64/include/asm/assembler.h            |   8 +
 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               |  11 +-
 arch/arm64/include/asm/thread_info.h          |   1 +
 arch/arm64/kernel/Makefile                    |   1 +
 arch/arm64/kernel/alternative.c               |  52 +++--
 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                     |  30 +++
 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 +
 arch/arm64/mm/proc.S                          |   8 +
 include/linux/arm-smccc.h                     |  10 +
 virt/kvm/arm/arm.c                            |  22 +--
 virt/kvm/arm/hyp/vgic-v2-sr.c                 |   2 +-
 virt/kvm/arm/psci.c                           |  18 +-
 33 files changed, 823 insertions(+), 79 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