提交 77f2878b 编写于 作者: J Jan Blunck 提交者: Linus Torvalds

oprofile: fix oops on x86 32-bit

x86 32-bit isn't saving the stack pointer to pt_regs->esp when an
interrupt occurs.
Signed-off-by: NJan Blunck <jblunck@suse.de>
Tested-by: NRobert Fitzsimons <robfitz@273k.net>
Cc: Andi Kleen <ak@suse.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Philippe Elie <phil.el@wanadoo.fr>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 35d5d08a
...@@ -60,7 +60,7 @@ static inline int v8086_mode(struct pt_regs *regs) ...@@ -60,7 +60,7 @@ static inline int v8086_mode(struct pt_regs *regs)
#define instruction_pointer(regs) ((regs)->eip) #define instruction_pointer(regs) ((regs)->eip)
#define frame_pointer(regs) ((regs)->ebp) #define frame_pointer(regs) ((regs)->ebp)
#define stack_pointer(regs) ((regs)->esp) #define stack_pointer(regs) ((unsigned long)(regs))
#define regs_return_value(regs) ((regs)->eax) #define regs_return_value(regs) ((regs)->eax)
extern unsigned long profile_pc(struct pt_regs *regs); extern unsigned long profile_pc(struct pt_regs *regs);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册