projects
/
GitHub
/
LineageOS
/
android_kernel_motorola_exynos9610.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
097a078
)
x86: use frame pointer information on x86_64 profile_pc
author
Glauber Costa
<gcosta@redhat.com>
Fri, 11 Jul 2008 16:53:43 +0000
(13:53 -0300)
committer
Ingo Molnar
<mingo@elte.hu>
Mon, 13 Oct 2008 08:21:29 +0000
(10:21 +0200)
Signed-off-by: Glauber Costa <gcosta@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/time_64.c
patch
|
blob
|
blame
|
history
diff --git
a/arch/x86/kernel/time_64.c
b/arch/x86/kernel/time_64.c
index e3d49c553af22aec7c773006b7018325dccb6ec0..7fd995edb762561cc5271b29db439389325be626 100644
(file)
--- a/
arch/x86/kernel/time_64.c
+++ b/
arch/x86/kernel/time_64.c
@@
-34,11
+34,15
@@
unsigned long profile_pc(struct pt_regs *regs)
of flags from PUSHF
Eflags always has bits 22 and up cleared unlike kernel addresses. */
if (!user_mode(regs) && in_lock_functions(pc)) {
+#ifdef CONFIG_FRAME_POINTER
+ return *(unsigned long *)(regs->bp + sizeof(long));
+#else
unsigned long *sp = (unsigned long *)regs->sp;
if (sp[0] >> 22)
return sp[0];
if (sp[1] >> 22)
return sp[1];
+#endif
}
return pc;
}