Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
b73faf74
Commit
b73faf74
authored
Jan 22, 2010
by
Mike Frysinger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Blackfin: support new ftrace frame pointer semantics
Signed-off-by:
Mike Frysinger
<
vapier@gentoo.org
>
parent
aebfef03
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
5 deletions
+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
No files found.
arch/blackfin/kernel/ftrace-entry.S
View file @
b73faf74
...
@@ -115,9 +115,12 @@ ENTRY(_ftrace_graph_caller)
...
@@ -115,9 +115,12 @@ ENTRY(_ftrace_graph_caller)
[--
sp
]
=
r1
;
[--
sp
]
=
r1
;
[--
sp
]
=
rets
;
[--
sp
]
=
rets
;
/
*
prepare_ftrace_return
(
unsigned
long
*
parent
,
unsigned
long
self_addr
)
*/
/
*
prepare_ftrace_return
(
parent
,
self_addr
,
frame_pointer
)
*/
r0
=
sp
;
r0
=
sp
; /* unsigned long *parent */
r1
=
rets
;
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 */
r0
+=
16
; /* skip the 4 local regs on stack */
r1
+=
-
MCOUNT_INSN_SIZE
;
r1
+=
-
MCOUNT_INSN_SIZE
;
call
_prepare_ftrace_return
;
call
_prepare_ftrace_return
;
...
@@ -136,6 +139,9 @@ ENTRY(_return_to_handler)
...
@@ -136,6 +139,9 @@ ENTRY(_return_to_handler)
[--
sp
]
=
r1
;
[--
sp
]
=
r1
;
/
*
get
original
return
address
*/
/
*
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
;
call
_ftrace_return_to_handler
;
rets
=
r0
;
rets
=
r0
;
...
...
arch/blackfin/kernel/ftrace.c
View file @
b73faf74
...
@@ -16,7 +16,8 @@
...
@@ -16,7 +16,8 @@
* Hook the return address and push it in the stack of return addrs
* Hook the return address and push it in the stack of return addrs
* in current thread info.
* 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
;
struct
ftrace_graph_ent
trace
;
unsigned
long
return_hooker
=
(
unsigned
long
)
&
return_to_handler
;
unsigned
long
return_hooker
=
(
unsigned
long
)
&
return_to_handler
;
...
@@ -24,7 +25,8 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
...
@@ -24,7 +25,8 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
if
(
unlikely
(
atomic_read
(
&
current
->
tracing_graph_pause
)))
if
(
unlikely
(
atomic_read
(
&
current
->
tracing_graph_pause
)))
return
;
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
;
return
;
trace
.
func
=
self_addr
;
trace
.
func
=
self_addr
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment