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:
parent
0161256ccc
commit
cfebc0faa7
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=340726
@ -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__)
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user