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;
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to