19 lines
455 B
Diff
19 lines
455 B
Diff
--- sys/amd64/amd64/exception.S.orig
|
|
+++ sys/amd64/amd64/exception.S
|
|
@@ -496,12 +496,14 @@
|
|
movq TF_RFLAGS(%rsp),%r11 /* original %rflags */
|
|
movq TF_RIP(%rsp),%rcx /* original %rip */
|
|
movq TF_RSP(%rsp),%rsp /* user stack pointer */
|
|
+ xorl %r8d,%r8d /* zero the rest of GPRs */
|
|
+ xorl %r10d,%r10d
|
|
cmpb $0,pti
|
|
je 2f
|
|
movq PCPU(UCR3),%r9
|
|
movq %r9,%cr3
|
|
- xorl %r9d,%r9d
|
|
-2: swapgs
|
|
+2: xorl %r9d,%r9d
|
|
+ swapgs
|
|
sysretq
|
|
|
|
3: /* AST scheduled. */
|