ACK/Cmnt: [SRU][B/master-next] arm64: Spectre v4 mitigation
Paolo Pisati
paolo.pisati at canonical.com
Thu Aug 30 10:31:19 UTC 2018
CVE-2018-3639 (arm64) line added to all the patches and pushed: if you
pull now, you will get it.
On Thu, Aug 30, 2018 at 12:12 PM, Stefan Bader
<stefan.bader at canonical.com> wrote:
> On 30.08.2018 11:26, Paolo Pisati wrote:
>> BugLink: https://bugs.launchpad.net/bugs/1787993
>>
>> [Impact]
>> Spectre v4 mitigation (Speculative Store Bypass Disable) for arm64
>> was implemented in the Arm Trusted Firmware with SMCCC v1.1 and
>> SMCCC_ARCH_WORKAROUND_2[1, 2].
>>
>> This patch series implements the Linux kernel side of the "Spectre-v4"
>> mitigation.
>>
>> [Fix]
>>
>> Original fix:
>> http://lkml.iu.edu/hypermail/linux/kernel/1805.2/05868.html
>>
>> This patchset is a cherry pick of those patches (and prerequisistes) from the
>> stable / linux-4.14.y tree, forward ported to our Bionic kernel.
>>
>> [Test]
>>
>> Boot a patched kernel and add on the cmdline:
>>
>> ssbd=force-on
>>
>> on dmesg you should see something like:
>>
>> [ 0.779901] ssbd: forced from command-line
>>
>> Same goes for the off case:
>>
>> ssbd=force-off
>>
>> [ 0.781002] ssbd: disabled from command-line
>>
>> [Regression Potential]
>>
>> Since it's "new code" to our Bionic kernel, there's some regression potential,
>> but it was a clean pick from linux-4.14.y without almost any modification (except
>> for some mechanical diff to make it apply).
>>
>> 1: https://developer.arm.com/cache-speculation-vulnerability-firmware-specification
>> 2: https://github.com/ARM-software/arm-trusted-firmware/pull/1392
>>
>> The following changes since commit eb8e0abeb302275fe7328b10c3f6374abcb70d83:
>>
>> UBUNTU: Start new release (2018-08-28 10:09:44 -0700)
>>
>> are available in the git repository at:
>>
>> git://git.launchpad.net/~p-pisati/ubuntu/+source/linux b-master-next-spectrev4
>>
>> for you to fetch changes up to b943fd8c926a0e64dd1d498216c0844f102126d1:
>>
>> UBUNTU: [Config] ARM64_SSBD=y (2018-08-30 10:33:58 +0200)
>>
>> ----------------------------------------------------------------
>> Christoffer Dall (1):
>> KVM: arm64: Avoid storing the vcpu pointer on the stack
>>
>> 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
>>
>> Paolo Pisati (1):
>> UBUNTU: [Config] ARM64_SSBD=y
>>
>> Documentation/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 | 41 +++++-
>> 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 | 41 ++++++
>> arch/arm64/include/asm/kvm_mmu.h | 44 ++++++
>> arch/arm64/include/asm/thread_info.h | 1 +
>> arch/arm64/kernel/Makefile | 1 +
>> arch/arm64/kernel/alternative.c | 43 ++++--
>> arch/arm64/kernel/asm-offsets.c | 2 +
>> arch/arm64/kernel/cpu_errata.c | 180 ++++++++++++++++++++++++
>> 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/entry.S | 6 +-
>> arch/arm64/kvm/hyp/hyp-entry.S | 66 ++++++---
>> arch/arm64/kvm/hyp/switch.c | 43 +++++-
>> arch/arm64/kvm/hyp/sysreg-sr.c | 5 +
>> arch/arm64/kvm/reset.c | 4 +
>> debian.master/config/config.common.ubuntu | 1 +
>> include/linux/arm-smccc.h | 10 ++
>> virt/kvm/arm/arm.c | 4 +
>> virt/kvm/arm/hyp/vgic-v2-sr.c | 2 +-
>> virt/kvm/arm/psci.c | 18 ++-
>> 29 files changed, 738 insertions(+), 47 deletions(-)
>> create mode 100644 arch/arm64/kernel/ssbd.c
>>
> I have not looked at the pull-request. So if not already done so, all the
> patches should probably have a "CVE-2018-3639 (arm64)" line added. I believe
> that was the correct number (maybe double check).
>
> Acked-by: Stefan Bader <stefan.bader at canonical.com>
>
--
bye,
p.
More information about the kernel-team
mailing list