Module Name:    src
Committed By:   maxv
Date:           Thu Aug 31 09:27:28 UTC 2017

Modified Files:
        src/sys/arch/amd64/amd64: locore.S

Log Message:
Construct the trap frame with interrupts disabled, for safety, just like
the rest of the interrupt entry points.


To generate a diff of this commit:
cvs rdiff -u -r1.126 -r1.127 src/sys/arch/amd64/amd64/locore.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/amd64/amd64/locore.S
diff -u src/sys/arch/amd64/amd64/locore.S:1.126 src/sys/arch/amd64/amd64/locore.S:1.127
--- src/sys/arch/amd64/amd64/locore.S:1.126	Thu Aug 10 12:49:11 2017
+++ src/sys/arch/amd64/amd64/locore.S	Thu Aug 31 09:27:28 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.S,v 1.126 2017/08/10 12:49:11 maxv Exp $	*/
+/*	$NetBSD: locore.S,v 1.127 2017/08/31 09:27:28 maxv Exp $	*/
 
 /*
  * Copyright-o-rama!
@@ -1264,28 +1264,19 @@ IDTVEC(syscall)
 
 	movq	$2,TF_ERR(%rsp)		/* syscall instruction size */
 	movq	$T_ASTFLT,TF_TRAPNO(%rsp)
-
-	movw	%es,TF_ES(%rsp)
-	sti
-	INTR_SAVE_GPRS
-	movw	%fs,TF_FS(%rsp)
-	movw	%gs,TF_GS(%rsp)
-	movw	$(LSEL(LUDATA_SEL, SEL_UPL)),TF_DS(%rsp)
 #else
 	/* Xen already switched to kernel stack */
-	pushq	%rsi
-	STI(si)
-	popq	%rsi
 	addq	$0x10,%rsp	/* gap to match cs:rip */
 	pushq	$2		/* error code */
 	pushq	$T_ASTFLT
 	subq	$TF_REGSIZE,%rsp
+#endif
 	INTR_SAVE_GPRS
+	movw	%es,TF_ES(%rsp)
 	movw	%fs,TF_FS(%rsp)
 	movw	%gs,TF_GS(%rsp)
-	movw	%es,TF_ES(%rsp)
 	movw	$(LSEL(LUDATA_SEL, SEL_UPL)),TF_DS(%rsp)
-#endif
+	STI(si)
 
 do_syscall:
 	movq	CPUVAR(CURLWP),%r14

Reply via email to