Page MenuHomeFreeBSD

D19514.id55135.diff
No OneTemporary

D19514.id55135.diff

Index: head/sys/amd64/amd64/cpu_switch.S
===================================================================
--- head/sys/amd64/amd64/cpu_switch.S
+++ head/sys/amd64/amd64/cpu_switch.S
@@ -209,14 +209,11 @@
done_tss:
movq %r8,PCPU(RSP0)
movq %r8,PCPU(CURPCB)
- /* Update the TSS_RSP0 pointer for the next interrupt */
- cmpq $~0,PCPU(UCR3)
- je 1f
movq PCPU(PTI_RSP0),%rax
+ cmpq $~0,PCPU(UCR3)
+ cmove %r8,%rax
movq %rax,TSS_RSP0(%rdx)
- jmp 2f
-1: movq %r8,TSS_RSP0(%rdx)
-2: movq %r12,PCPU(CURTHREAD) /* into next thread */
+ movq %r12,PCPU(CURTHREAD) /* into next thread */
/* Test if debug registers should be restored. */
testl $PCB_DBREGS,PCB_FLAGS(%r8)

File Metadata

Mime Type
text/plain
Expires
Wed, Dec 25, 8:48 AM (9 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15595890
Default Alt Text
D19514.id55135.diff (678 B)

Event Timeline