Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Nov 2018 16:47:11 +0000 (UTC)
From:      Justin Hibbits <jhibbits@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r340726 - in head/sys/cddl: contrib/opensolaris/uts/common/sys dev/fbt/powerpc
Message-ID:  <201811211647.wALGlBBn039307@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhibbits
Date: Wed Nov 21 16:47:11 2018
New Revision: 340726
URL: https://svnweb.freebsd.org/changeset/base/340726

Log:
  DTrace/powerpc: Fix FBT return probes
  
  The FBT fuction boundary prober was setting one return probe marker value,
  but the dtrace handler was expecting another.  This causes a hang when
  tracing return probes.

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h
  head/sys/cddl/dev/fbt/powerpc/fbt_isa.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h	Wed Nov 21 14:50:45 2018	(r340725)
+++ head/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h	Wed Nov 21 16:47:11 2018	(r340726)
@@ -2435,12 +2435,11 @@ extern void dtrace_helpers_destroy(proc_t *);
 
 #elif defined(__powerpc__)
 
-#define DTRACE_INVOP_RET	1
-#define DTRACE_INVOP_BCTR	2
-#define DTRACE_INVOP_BLR	3
-#define DTRACE_INVOP_JUMP	4
-#define DTRACE_INVOP_MFLR_R0	5
-#define DTRACE_INVOP_NOP	6
+#define DTRACE_INVOP_BCTR	1
+#define DTRACE_INVOP_BLR	2
+#define DTRACE_INVOP_JUMP	3
+#define DTRACE_INVOP_MFLR_R0	4
+#define DTRACE_INVOP_NOP	5
 
 #elif defined(__arm__)
 

Modified: head/sys/cddl/dev/fbt/powerpc/fbt_isa.c
==============================================================================
--- head/sys/cddl/dev/fbt/powerpc/fbt_isa.c	Wed Nov 21 14:50:45 2018	(r340725)
+++ head/sys/cddl/dev/fbt/powerpc/fbt_isa.c	Wed Nov 21 16:47:11 2018	(r340726)
@@ -221,7 +221,7 @@ again:
 	if (*instr == FBT_BCTR)
 		fbt->fbtp_rval = DTRACE_INVOP_BCTR;
 	else if (*instr == FBT_BLR)
-		fbt->fbtp_rval = DTRACE_INVOP_RET;
+		fbt->fbtp_rval = DTRACE_INVOP_BLR;
 	else
 		fbt->fbtp_rval = DTRACE_INVOP_JUMP;
 



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