Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Sep 2009 09:41:51 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r197389 - in head/sys: amd64/amd64 i386/i386
Message-ID:  <200909210941.n8L9fpT7084893@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Mon Sep 21 09:41:51 2009
New Revision: 197389
URL: http://svn.freebsd.org/changeset/base/197389

Log:
  If CPU happens to be in usermode when a T_RESERVED trap occured,
  then trapsignal is called with ksi.ksi_signo = 0. For debugging kernels,
  that should end up in panic, for non-debugging kernels behaviour is
  undefined.
  
  Do panic regardeless of execution mode at the moment of trap.
  
  Reviewed by:	jhb
  MFC after:	1 month

Modified:
  head/sys/amd64/amd64/trap.c
  head/sys/i386/i386/trap.c

Modified: head/sys/amd64/amd64/trap.c
==============================================================================
--- head/sys/amd64/amd64/trap.c	Mon Sep 21 09:09:55 2009	(r197388)
+++ head/sys/amd64/amd64/trap.c	Mon Sep 21 09:41:51 2009	(r197389)
@@ -253,6 +253,11 @@ trap(struct trapframe *frame)
 	}
 #endif
 
+	if (type == T_RESERVED) {
+		trap_fatal(frame, 0);
+		goto out;
+	}
+
 #ifdef	HWPMC_HOOKS
 	/*
 	 * CPU PMCs interrupt using an NMI.  If the PMC module is

Modified: head/sys/i386/i386/trap.c
==============================================================================
--- head/sys/i386/i386/trap.c	Mon Sep 21 09:09:55 2009	(r197388)
+++ head/sys/i386/i386/trap.c	Mon Sep 21 09:41:51 2009	(r197389)
@@ -225,6 +225,11 @@ trap(struct trapframe *frame)
 	}
 #endif
 
+	if (type == T_RESERVED) {
+		trap_fatal(frame, 0);
+		goto out;
+	}
+
 #ifdef	HWPMC_HOOKS
 	/*
 	 * CPU PMCs interrupt using an NMI so we check for that first.



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