diff options
Diffstat (limited to 'arch/x86/kernel/time_64.c')
-rw-r--r-- | arch/x86/kernel/time_64.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kernel/time_64.c b/arch/x86/kernel/time_64.c index f88bf6b802e3..bf0bcc9bb001 100644 --- a/arch/x86/kernel/time_64.c +++ b/arch/x86/kernel/time_64.c | |||
@@ -29,10 +29,10 @@ unsigned long profile_pc(struct pt_regs *regs) | |||
29 | unsigned long pc = instruction_pointer(regs); | 29 | unsigned long pc = instruction_pointer(regs); |
30 | 30 | ||
31 | /* Assume the lock function has either no stack frame or a copy | 31 | /* Assume the lock function has either no stack frame or a copy |
32 | of eflags from PUSHF | 32 | of flags from PUSHF |
33 | Eflags always has bits 22 and up cleared unlike kernel addresses. */ | 33 | Eflags always has bits 22 and up cleared unlike kernel addresses. */ |
34 | if (!user_mode(regs) && in_lock_functions(pc)) { | 34 | if (!user_mode(regs) && in_lock_functions(pc)) { |
35 | unsigned long *sp = (unsigned long *)regs->rsp; | 35 | unsigned long *sp = (unsigned long *)regs->sp; |
36 | if (sp[0] >> 22) | 36 | if (sp[0] >> 22) |
37 | return sp[0]; | 37 | return sp[0]; |
38 | if (sp[1] >> 22) | 38 | if (sp[1] >> 22) |