svn commit: r324299 - in stable/11/sys/i386: i386 include

Konstantin Belousov kib at FreeBSD.org
Thu Oct 5 11:00:06 UTC 2017


Author: kib
Date: Thu Oct  5 11:00:04 2017
New Revision: 324299
URL: https://svnweb.freebsd.org/changeset/base/324299

Log:
  MFC r324079:
  Do not return from interrupt using the POP_FRAME;iret instruction
  sequence, always jump to doreti.

Modified:
  stable/11/sys/i386/i386/apic_vector.s
  stable/11/sys/i386/include/asmacros.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/i386/i386/apic_vector.s
==============================================================================
--- stable/11/sys/i386/i386/apic_vector.s	Thu Oct  5 10:47:04 2017	(r324298)
+++ stable/11/sys/i386/i386/apic_vector.s	Thu Oct  5 11:00:04 2017	(r324299)
@@ -189,8 +189,7 @@ IDTVEC(xen_intr_upcall)
 	SUPERALIGN_TEXT
 invltlb_ret:
 	call	as_lapic_eoi
-	POP_FRAME
-	iret
+	jmp	doreti
 
 	SUPERALIGN_TEXT
 IDTVEC(invltlb)
@@ -274,10 +273,8 @@ IDTVEC(cpustop)
 
 	call	as_lapic_eoi
 	call	cpustop_handler
+	jmp	doreti
 
-	POP_FRAME
-	iret
-
 /*
  * Executed by a CPU when it receives an IPI_SUSPEND from another CPU.
  */
@@ -290,10 +287,8 @@ IDTVEC(cpususpend)
 
 	call	as_lapic_eoi
 	call	cpususpend_handler
+	jmp	doreti
 
-	POP_FRAME
-	jmp	doreti_iret
-
 /*
  * Executed by a CPU when it receives a RENDEZVOUS IPI from another CPU.
  *
@@ -314,7 +309,6 @@ IDTVEC(rendezvous)
 	call	smp_rendezvous_action
 
 	call	as_lapic_eoi
-	POP_FRAME
-	iret
+	jmp	doreti
 	
 #endif /* SMP */

Modified: stable/11/sys/i386/include/asmacros.h
==============================================================================
--- stable/11/sys/i386/include/asmacros.h	Thu Oct  5 10:47:04 2017	(r324298)
+++ stable/11/sys/i386/include/asmacros.h	Thu Oct  5 11:00:04 2017	(r324299)
@@ -153,13 +153,6 @@
 	pushl	$0 ;							\
 	movw	%fs,(%esp)
 	
-#define	POP_FRAME							\
-	popl	%fs ;							\
-	popl	%es ;							\
-	popl	%ds ;							\
-	popal ;								\
-	addl	$4+4,%esp
-
 /*
  * Access per-CPU data.
  */


More information about the svn-src-stable mailing list