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.
This commit is contained in:
Justin Hibbits 2018-11-21 16:47:11 +00:00
parent 0161256ccc
commit cfebc0faa7
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=340726
2 changed files with 6 additions and 7 deletions

View File

@ -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__)

View File

@ -221,7 +221,7 @@ fbt_provide_module_function(linker_file_t lf, int symindx,
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;