Page MenuHomeFreeBSD

D25722.id74640.diff
No OneTemporary

D25722.id74640.diff

Index: sys/amd64/amd64/exception.S
===================================================================
--- sys/amd64/amd64/exception.S
+++ sys/amd64/amd64/exception.S
@@ -526,17 +526,17 @@
IDTVEC(fast_syscall_pti)
swapgs
lfence
- movq %rax,PCPU(SCRATCH_RAX)
cmpq $~0,PCPU(UCR3)
je fast_syscall_common
+ movq %rax,PCPU(SCRATCH_RAX)
movq PCPU(KCR3),%rax
movq %rax,%cr3
+ movq PCPU(SCRATCH_RAX),%rax
jmp fast_syscall_common
SUPERALIGN_TEXT
IDTVEC(fast_syscall)
swapgs
lfence
- movq %rax,PCPU(SCRATCH_RAX)
fast_syscall_common:
movq %rsp,PCPU(SCRATCH_RSP)
movq PCPU(RSP0),%rsp
@@ -547,7 +547,6 @@
movq %rcx,TF_RIP(%rsp) /* %rcx original value is in %r10 */
movq PCPU(SCRATCH_RSP),%r11 /* %r11 already saved */
movq %r11,TF_RSP(%rsp) /* user stack pointer */
- movq PCPU(SCRATCH_RAX),%rax
/*
* Save a few arg registers early to free them for use in
* handle_ibrs_entry(). %r10 is especially tricky. It is not an

File Metadata

Mime Type
text/plain
Expires
Tue, Apr 7, 11:23 AM (16 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31027899
Default Alt Text
D25722.id74640.diff (949 B)

Event Timeline