Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Jul 2017 06:33:40 +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: r321004 - stable/11/sys/i386/i386
Message-ID:  <201707150633.v6F6XeB0013033@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Sat Jul 15 06:33:39 2017
New Revision: 321004
URL: https://svnweb.freebsd.org/changeset/base/321004

Log:
  MFC r320804:
  Fix handling of one more possible exception on return to usermode.

Modified:
  stable/11/sys/i386/i386/trap.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/i386/i386/trap.c
==============================================================================
--- stable/11/sys/i386/i386/trap.c	Sat Jul 15 01:49:54 2017	(r321003)
+++ stable/11/sys/i386/i386/trap.c	Sat Jul 15 06:33:39 2017	(r321004)
@@ -550,11 +550,7 @@ user_trctrap_out:
 					vm86_trap((struct vm86frame *)frame);
 				goto out;
 			}
-			if (type == T_STKFLT)
-				break;
-
 			/* FALL THROUGH */
-
 		case T_SEGNPFLT:	/* segment not present fault */
 			if (curpcb->pcb_flags & PCB_VM86CALL)
 				break;
@@ -595,6 +591,9 @@ user_trctrap_out:
 				frame->tf_eip = (int)doreti_iret_fault;
 				goto out;
 			}
+			if (type == T_STKFLT)
+				break;
+
 			if (frame->tf_eip == (int)doreti_popl_ds) {
 				frame->tf_eip = (int)doreti_popl_ds_fault;
 				goto out;



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