Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Jan 2015 05:03:24 +0000 (UTC)
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r277915 - head/sys/cddl/contrib/opensolaris/uts/common/dtrace
Message-ID:  <201501300503.t0U53OUI076513@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markj
Date: Fri Jan 30 05:03:23 2015
New Revision: 277915
URL: https://svnweb.freebsd.org/changeset/base/277915

Log:
  Don't attempt to disable enabled fasttrap probes in an exiting process.
  There's no need to do so, and we can't hold an exiting process, so this
  race can result in panics.
  
  MFC after:	1 week

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c	Fri Jan 30 04:51:59 2015	(r277914)
+++ head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c	Fri Jan 30 05:03:23 2015	(r277915)
@@ -1296,8 +1296,13 @@ fasttrap_pid_disable(void *arg, dtrace_i
 	 */
 	if ((p = pfind(probe->ftp_pid)) != NULL) {
 #ifdef __FreeBSD__
-		_PHOLD(p);
-		PROC_UNLOCK(p);
+		if (p->p_flag & P_WEXIT) {
+			PROC_UNLOCK(p);
+			p = NULL;
+		} else {
+			_PHOLD(p);
+			PROC_UNLOCK(p);
+		}
 #endif
 	}
 



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