linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ardb@kernel.org>
To: linux-arm-kernel@lists.infradead.org, linux@armlinux.org.uk
Cc: arnd@arndb.de, linus.walleij@linaro.org,
	Ard Biesheuvel <ardb@kernel.org>
Subject: [PATCH 4/6] ARM: spectre-bhb: use local DSB and elide ISB in loop8 sequence
Date: Mon, 28 Mar 2022 15:47:12 +0200	[thread overview]
Message-ID: <20220328134714.205342-5-ardb@kernel.org> (raw)
In-Reply-To: <20220328134714.205342-1-ardb@kernel.org>

The loop8 mitigation for Spectre-BHB only requires a CPU local DSB
rather than a systemwide one, which is much more costly. And by the same
reasoning as why it is justified to omit the ISB after BPIALL, we can
also elide the ISB and rely on the exception return for the context
synchronization.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
 arch/arm/kernel/entry-armv.S   | 5 +++--
 arch/arm/kernel/entry-common.S | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index a5725e82addc..3a62ee790b5e 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -1049,8 +1049,9 @@ vector_bhb_loop8_\name:
 3:	W(b)	. + 4
 	subs	r0, r0, #1
 	bne	3b
-	dsb
-	isb
+	dsb	nsh
+	@ isb not needed due to "movs pc, lr" in the vector stub
+	@ which gives a "context synchronisation".
 	b	2b
 ENDPROC(vector_bhb_loop8_\name)
 	.previous
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index dbc1913ee30b..96016a5ad72f 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -162,7 +162,7 @@ ENTRY(vector_bhb_loop8_swi)
 1:	b	2f
 2:	subs	r8, r8, #1
 	bne	1b
-	dsb
+	dsb	nsh
 	isb
 	b	3f
 ENDPROC(vector_bhb_loop8_swi)
-- 
2.30.2


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2022-03-28 13:54 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-28 13:47 [PATCH 0/6] ARM: spectre-bhb fixes and tweaks Ard Biesheuvel
2022-03-28 13:47 ` [PATCH 1/6] ARM: spectre-bhb: enable for Cortex-A15 Ard Biesheuvel
2022-05-24 14:50   ` Jon Hunter
2022-05-24 15:21     ` Ard Biesheuvel
2022-05-24 16:06       ` Jon Hunter
2022-05-24 17:03     ` Russell King (Oracle)
2022-05-24 17:49       ` Jon Hunter
2022-05-25  7:09         ` Ard Biesheuvel
2022-05-25 10:48           ` Jon Hunter
2022-05-25 10:52             ` Ard Biesheuvel
2022-06-07 14:30       ` Jon Hunter
2022-06-07 14:32         ` Ard Biesheuvel
2022-06-07 14:35           ` Jon Hunter
2022-06-07 14:39             ` Ard Biesheuvel
2022-03-28 13:47 ` [PATCH 2/6] ARM: spectre-bhb: fix loop8 sequence for Thumb2 Ard Biesheuvel
2022-03-28 13:47 ` [PATCH 3/6] ARM: spectre-bhb: simplify BPIALL vector macro Ard Biesheuvel
2022-03-28 13:47 ` Ard Biesheuvel [this message]
2022-03-28 13:47 ` [PATCH 5/6] ARM: spectre-bhb: avoid cross-subsection jump using a numbered label Ard Biesheuvel
2022-03-31 14:07   ` Russell King (Oracle)
2022-03-31 16:22     ` Ard Biesheuvel
2022-03-28 13:47 ` [PATCH 6/6] ARM: spectre-bhb: rely on linker to emit cross-section literal loads Ard Biesheuvel

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=20220328134714.205342-5-ardb@kernel.org \
    --to=ardb@kernel.org \
    --cc=arnd@arndb.de \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    /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;
as well as URLs for NNTP newsgroup(s).