git: 7aa47cace149 - main - amd64: remove lfence after swapgs on syscall entry
Konstantin Belousov
kib at FreeBSD.org
Thu Aug 26 16:09:48 UTC 2021
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=7aa47cace14948a7b8277a4b24a0ca9e0308990a
commit 7aa47cace14948a7b8277a4b24a0ca9e0308990a
Author: Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-08-25 19:28:57 +0000
Commit: Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-08-26 16:09:21 +0000
amd64: remove lfence after swapgs on syscall entry
According to the description of SBSS issue at
https://software.intel.com/content/www/us/en/develop/articles/software-security-guidance/technical-documentation/speculative-behavior-swapgs-and-segment-registers.html
lfence after swapgs is needed only for the case when swapgs could be
speculatively executed. Since syscall entry, unlike exception and
interrupt entries, executes swapgs unconditionally, there is no
opportunity for speculation.
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D31682
---
sys/amd64/amd64/exception.S | 2 --
1 file changed, 2 deletions(-)
diff --git a/sys/amd64/amd64/exception.S b/sys/amd64/amd64/exception.S
index d1e49faa40e7..6471f9a3041c 100644
--- a/sys/amd64/amd64/exception.S
+++ b/sys/amd64/amd64/exception.S
@@ -524,7 +524,6 @@ prot_addrf:
SUPERALIGN_TEXT
IDTVEC(fast_syscall_pti)
swapgs
- lfence
cmpq $~0,PCPU(UCR3)
je fast_syscall_common
movq %rax,PCPU(SCRATCH_RAX)
@@ -535,7 +534,6 @@ IDTVEC(fast_syscall_pti)
SUPERALIGN_TEXT
IDTVEC(fast_syscall)
swapgs
- lfence
fast_syscall_common:
movq %rsp,PCPU(SCRATCH_RSP)
movq PCPU(RSP0),%rsp
More information about the dev-commits-src-main
mailing list