Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Oct 2017 11:00:05 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r324299 - in stable/11/sys/i386: i386 include
Message-ID:  <201710051100.v95B05G2002079@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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.
  */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201710051100.v95B05G2002079>