Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
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
Hide 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)
[--
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
View file @
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
;
...
...
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