diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2021-08-25 19:28:57 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2021-08-26 16:09:21 +0000 |
commit | 7aa47cace14948a7b8277a4b24a0ca9e0308990a (patch) | |
tree | c577d1934aa83c474681497124828fdb139be163 | |
parent | 58d868c88d21b46d3d6d40a2920e7ba8996723b8 (diff) | |
download | src-7aa47cace14948a7b8277a4b24a0ca9e0308990a.tar.gz src-7aa47cace14948a7b8277a4b24a0ca9e0308990a.zip |
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
-rw-r--r-- | sys/amd64/amd64/exception.S | 2 |
1 files changed, 0 insertions, 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 |