Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3927fa9e authored by Glauber Costa's avatar Glauber Costa Committed by Ingo Molnar
Browse files

x86: use frame pointer information on x86_64 profile_pc



Signed-off-by: default avatarGlauber Costa <gcosta@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 097a0788
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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;
}