microblaze: ftrace: Pass the first calling instruction for dynamic ftrace
Selftest for dynamic ftrace requres to pass address of the first calling instruction because hash function is calculated from it. ftrace_update_ftrace_func setups pointer to function which is called in _mcount function. trace_selftest is not aware about instruction size (for microblaze 8 - imm and addik) and that's why we have to pass in r5 address of imm not addik which is in r15.12 For more info look at ftrace_ops_list_func/ftrace.c. Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
Родитель
f397c077e1
Коммит
d65987a88d
|
@ -138,7 +138,7 @@ NOALIGN_ENTRY(ftrace_call)
|
|||
#endif /* CONFIG_DYNAMIC_FTRACE */
|
||||
/* static normal trace */
|
||||
lwi r6, r1, 120; /* MS: load parent addr */
|
||||
addik r5, r15, 0; /* MS: load current function addr */
|
||||
addik r5, r15, -4; /* MS: load current function addr */
|
||||
/* MS: here is dependency on previous code */
|
||||
brald r15, r20; /* MS: jump to ftrace handler */
|
||||
nop;
|
||||
|
|
Загрузка…
Ссылка в новой задаче