Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Jul 2017 06:38:01 +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-10@freebsd.org
Subject:   svn commit: r321005 - stable/10/sys/i386/i386
Message-ID:  <201707150638.v6F6c1EA013233@repo.freebsd.org>

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

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

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

Modified: stable/10/sys/i386/i386/trap.c
==============================================================================
--- stable/10/sys/i386/i386/trap.c	Sat Jul 15 06:33:39 2017	(r321004)
+++ stable/10/sys/i386/i386/trap.c	Sat Jul 15 06:38:01 2017	(r321005)
@@ -567,11 +567,7 @@ trap(struct trapframe *frame)
 					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;
@@ -612,6 +608,9 @@ trap(struct trapframe *frame)
 				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?201707150638.v6F6c1EA013233>