From: Russell King - ARM Linux <linux@armlinux.org.uk>
To: David Long <dave.long@linaro.org>
Cc: Marc Zyngier <marc.zyngier@arm.com>,
stable@vger.kernel.org, Florian Fainelli <f.fainelli@gmail.com>,
Tony Lindgren <tony@atomide.com>,
Mark Rutland <mark.rutland@arm.com>,
Greg KH <gregkh@linuxfoundation.org>,
Mark Brown <broonie@kernel.org>
Subject: Re: [PATCH 4.9 09/24] ARM: spectre-v2: add firmware based hardening
Date: Tue, 6 Nov 2018 16:23:44 +0000 [thread overview]
Message-ID: <20181106162343.GI30658@n2100.armlinux.org.uk> (raw)
In-Reply-To: <eb3396a3-fff9-bba7-cfad-65e833c6a5eb@linaro.org>
On Tue, Nov 06, 2018 at 11:20:19AM -0500, David Long wrote:
> On 11/6/18 5:40 AM, Marc Zyngier wrote:
> >On Wed, 31 Oct 2018 13:56:58 +0000,
> >David Long <dave.long@linaro.org> wrote:
> >>
> >>From: Russell King <rmk+kernel@armlinux.org.uk>
> >>
> >>Commit 10115105cb3aa17b5da1cb726ae8dd5f6854bd93 upstream.
> >>
> >>Add firmware based hardening for cores that require more complex
> >>handling in firmware.
> >>
> >>Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
> >>Boot-tested-by: Tony Lindgren <tony@atomide.com>
> >>Reviewed-by: Tony Lindgren <tony@atomide.com>
> >>Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
> >>Signed-off-by: David A. Long <dave.long@linaro.org>
> >>---
> >> arch/arm/mm/proc-v7-bugs.c | 60 ++++++++++++++++++++++++++++++++++++++
> >> arch/arm/mm/proc-v7.S | 21 +++++++++++++
> >> 2 files changed, 81 insertions(+)
> >>
> >
> >[...]
> >
> >>diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
> >>index 2d2e5ae85816..8fde9edb4a48 100644
> >>--- a/arch/arm/mm/proc-v7.S
> >>+++ b/arch/arm/mm/proc-v7.S
> >>@@ -9,6 +9,7 @@
> >> *
> >> * This is the "shell" of the ARMv7 processor support.
> >> */
> >>+#include <linux/arm-smccc.h>
> >> #include <linux/init.h>
> >> #include <linux/linkage.h>
> >> #include <asm/assembler.h>
> >>@@ -88,6 +89,26 @@ ENTRY(cpu_v7_dcache_clean_area)
> >> ret lr
> >> ENDPROC(cpu_v7_dcache_clean_area)
> >>+#ifdef CONFIG_ARM_PSCI
> >>+ .arch_extension sec
> >>+ENTRY(cpu_v7_smc_switch_mm)
> >>+ stmfd sp!, {r0 - r3}
> >>+ movw r0, #:lower16:ARM_SMCCC_ARCH_WORKAROUND_1
> >>+ movt r0, #:upper16:ARM_SMCCC_ARCH_WORKAROUND_1
> >>+ smc #0
> >>+ ldmfd sp!, {r0 - r3}
> >>+ b cpu_v7_switch_mm
> >>+ENDPROC(cpu_v7_smc_switch_mm)
> >>+ .arch_extension virt
> >>+ENTRY(cpu_v7_hvc_switch_mm)
> >>+ stmfd sp!, {r0 - r3}
> >>+ movw r0, #:lower16:ARM_SMCCC_ARCH_WORKAROUND_1
> >>+ movt r0, #:upper16:ARM_SMCCC_ARCH_WORKAROUND_1
> >>+ hvc #0
> >>+ ldmfd sp!, {r0 - r3}
> >>+ b cpu_v7_switch_mm
> >>+ENDPROC(cpu_v7_smc_switch_mm)
> >
> >As pointed out by Ard a while ago [1], this breaks Thumb-2 kernels.
> >Please keep this series on hold until this is fixed in mainline and
> >you can cherry-pick the corresponding patch.
> >
> >Thanks,
> >
> > M.
> >
> >[1] https://patchwork.kernel.org/patch/10475033/
> >
>
> Note that it looks like this problem is now in v4.14 stable too.
The good news is that Linus has just pulled the fix into mainline, so
we can now poke Greg to pick it up for all stable kernels - but, as a
result, we're going to get into a bit of a mess because it's going to
require careful management of which stable kernels, and getting it
applied by indirect reference along with _these_ patches.
I'm not sure if we've just made things easier or harder.
--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up
next prev parent reply other threads:[~2018-11-07 1:49 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-31 13:56 [PATCH 4.9 00/24] V4.9 backport of 32-bit arm spectre patches David Long
2018-10-31 13:56 ` [PATCH 4.9 01/24] ARM: add more CPU part numbers for Cortex and Brahma B15 CPUs David Long
2018-10-31 13:56 ` [PATCH 4.9 02/24] ARM: bugs: prepare processor bug infrastructure David Long
2018-10-31 13:56 ` [PATCH 4.9 03/24] ARM: bugs: hook processor bug checking into SMP and suspend paths David Long
2018-10-31 13:56 ` [PATCH 4.9 04/24] ARM: bugs: add support for per-processor bug checking David Long
2018-10-31 13:56 ` [PATCH 4.9 05/24] ARM: spectre: add Kconfig symbol for CPUs vulnerable to Spectre David Long
2018-10-31 13:56 ` [PATCH 4.9 06/24] ARM: spectre-v2: harden branch predictor on context switches David Long
2018-10-31 13:56 ` [PATCH 4.9 07/24] ARM: spectre-v2: add Cortex A8 and A15 validation of the IBE bit David Long
2018-10-31 13:56 ` [PATCH 4.9 08/24] ARM: spectre-v2: harden user aborts in kernel space David Long
2018-10-31 13:56 ` [PATCH 4.9 09/24] ARM: spectre-v2: add firmware based hardening David Long
2018-11-06 10:40 ` Marc Zyngier
2018-11-06 10:55 ` Russell King - ARM Linux
2018-11-06 16:19 ` Mark Brown
2018-11-06 16:30 ` Russell King - ARM Linux
2018-11-06 16:53 ` Mark Brown
2018-11-06 16:20 ` David Long
2018-11-06 16:23 ` Russell King - ARM Linux [this message]
2018-10-31 13:56 ` [PATCH 4.9 10/24] ARM: spectre-v2: warn about incorrect context switching functions David Long
2018-10-31 13:57 ` [PATCH 4.9 11/24] ARM: KVM: invalidate BTB on guest exit for Cortex-A12/A17 David Long
2018-11-05 9:13 ` Marc Zyngier
2018-11-07 2:22 ` David Long
2018-11-07 2:23 ` David Long
2018-10-31 13:57 ` [PATCH 4.9 12/24] ARM: KVM: invalidate icache on guest exit for Cortex-A15 David Long
2018-10-31 13:57 ` [PATCH 4.9 13/24] ARM: spectre-v2: KVM: invalidate icache on guest exit for Brahma B15 David Long
2018-10-31 13:57 ` [PATCH 4.9 14/24] ARM: KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling David Long
2018-10-31 13:57 ` [PATCH 4.9 15/24] ARM: KVM: report support for SMCCC_ARCH_WORKAROUND_1 David Long
2018-10-31 13:57 ` [PATCH 4.9 16/24] ARM: spectre-v1: add speculation barrier (csdb) macros David Long
2018-10-31 13:57 ` [PATCH 4.9 17/24] ARM: spectre-v1: add array_index_mask_nospec() implementation David Long
2018-10-31 13:57 ` [PATCH 4.9 18/24] ARM: spectre-v1: fix syscall entry David Long
2018-10-31 13:57 ` [PATCH 4.9 19/24] ARM: signal: copy registers using __copy_from_user() David Long
2018-10-31 13:57 ` [PATCH 4.9 20/24] ARM: vfp: use __copy_from_user() when restoring VFP state David Long
2018-10-31 13:57 ` [PATCH 4.9 21/24] ARM: oabi-compat: copy semops using __copy_from_user() David Long
2018-10-31 13:57 ` [PATCH 4.9 22/24] ARM: use __inttype() in get_user() David Long
2018-10-31 13:57 ` [PATCH 4.9 23/24] ARM: spectre-v1: use get_user() for __get_user() David Long
2018-10-31 13:57 ` [PATCH 4.9 24/24] ARM: spectre-v1: mitigate user accesses David Long
2018-10-31 21:23 ` [PATCH 4.9 00/24] V4.9 backport of 32-bit arm spectre patches Florian Fainelli
2018-11-02 1:18 ` David Long
2018-11-02 8:54 ` Marc Zyngier
2018-11-02 17:22 ` David Long
2018-11-02 11:28 ` Russell King - ARM Linux
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181106162343.GI30658@n2100.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=broonie@kernel.org \
--cc=dave.long@linaro.org \
--cc=f.fainelli@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=marc.zyngier@arm.com \
--cc=mark.rutland@arm.com \
--cc=stable@vger.kernel.org \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox