Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
b73faf74
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
b73faf74
编写于
1月 22, 2010
作者:
M
Mike Frysinger
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Blackfin: support new ftrace frame pointer semantics
Signed-off-by:
N
Mike Frysinger
<
vapier@gentoo.org
>
上级
aebfef03
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
13 addition
and
5 deletion
+13
-5
arch/blackfin/kernel/ftrace-entry.S
arch/blackfin/kernel/ftrace-entry.S
+9
-3
arch/blackfin/kernel/ftrace.c
arch/blackfin/kernel/ftrace.c
+4
-2
未找到文件。
arch/blackfin/kernel/ftrace-entry.S
浏览文件 @
b73faf74
...
...
@@ -115,9 +115,12 @@ ENTRY(_ftrace_graph_caller)
[--
sp
]
=
r1
;
[--
sp
]
=
rets
;
/
*
prepare_ftrace_return
(
unsigned
long
*
parent
,
unsigned
long
self_addr
)
*/
r0
=
sp
;
r1
=
rets
;
/
*
prepare_ftrace_return
(
parent
,
self_addr
,
frame_pointer
)
*/
r0
=
sp
; /* unsigned long *parent */
r1
=
rets
; /* unsigned long self_addr */
#ifdef CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST
r2
=
fp
; /* unsigned long frame_pointer */
#endif
r0
+=
16
; /* skip the 4 local regs on stack */
r1
+=
-
MCOUNT_INSN_SIZE
;
call
_prepare_ftrace_return
;
...
...
@@ -136,6 +139,9 @@ ENTRY(_return_to_handler)
[--
sp
]
=
r1
;
/
*
get
original
return
address
*/
#ifdef CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST
r0
=
fp
; /* Blackfin is sane, so omit this */
#endif
call
_ftrace_return_to_handler
;
rets
=
r0
;
...
...
arch/blackfin/kernel/ftrace.c
浏览文件 @
b73faf74
...
...
@@ -16,7 +16,8 @@
* Hook the return address and push it in the stack of return addrs
* in current thread info.
*/
void
prepare_ftrace_return
(
unsigned
long
*
parent
,
unsigned
long
self_addr
)
void
prepare_ftrace_return
(
unsigned
long
*
parent
,
unsigned
long
self_addr
,
unsigned
long
frame_pointer
)
{
struct
ftrace_graph_ent
trace
;
unsigned
long
return_hooker
=
(
unsigned
long
)
&
return_to_handler
;
...
...
@@ -24,7 +25,8 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
if
(
unlikely
(
atomic_read
(
&
current
->
tracing_graph_pause
)))
return
;
if
(
ftrace_push_return_trace
(
*
parent
,
self_addr
,
&
trace
.
depth
,
0
)
==
-
EBUSY
)
if
(
ftrace_push_return_trace
(
*
parent
,
self_addr
,
&
trace
.
depth
,
frame_pointer
)
==
-
EBUSY
)
return
;
trace
.
func
=
self_addr
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录