x86: time_32/64.c unify profile_pc
authorThomas Gleixner <tglx@linutronix.de>
Fri, 21 Aug 2009 11:24:08 +0000 (13:24 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 31 Aug 2009 07:35:46 +0000 (09:35 +0200)
The code is identical except for the formatting and a useless
#ifdef. Make it the same.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/kernel/time_32.c
arch/x86/kernel/time_64.c

index fd876cc..fda0c34 100644 (file)
@@ -34,23 +34,22 @@ unsigned long profile_pc(struct pt_regs *regs)
 {
        unsigned long pc = instruction_pointer(regs);
 
-#ifdef CONFIG_SMP
        if (!user_mode_vm(regs) && in_lock_functions(pc)) {
 #ifdef CONFIG_FRAME_POINTER
                return *(unsigned long *)(regs->bp + sizeof(long));
 #else
-               unsigned long *sp = (unsigned long *)&regs->sp;
-
-               /* Return address is either directly at stack pointer
-                  or above a saved flags. Eflags has bits 22-31 zero,
-                  kernel addresses don't. */
+               unsigned long *sp = (unsigned long *)regs->sp;
+               /*
+                * Return address is either directly at stack pointer
+                * or above a saved flags. Eflags has bits 22-31 zero,
+                * kernel addresses don't.
+                */
                if (sp[0] >> 22)
                        return sp[0];
                if (sp[1] >> 22)
                        return sp[1];
 #endif
        }
-#endif
        return pc;
 }
 EXPORT_SYMBOL(profile_pc);
index e59a40e..fda0c34 100644 (file)
@@ -34,14 +34,16 @@ unsigned long profile_pc(struct pt_regs *regs)
 {
        unsigned long pc = instruction_pointer(regs);
 
-       /* Assume the lock function has either no stack frame or a copy
-          of flags from PUSHF
-          Eflags always has bits 22 and up cleared unlike kernel addresses. */
        if (!user_mode_vm(regs) && in_lock_functions(pc)) {
 #ifdef CONFIG_FRAME_POINTER
                return *(unsigned long *)(regs->bp + sizeof(long));
 #else
                unsigned long *sp = (unsigned long *)regs->sp;
+               /*
+                * Return address is either directly at stack pointer
+                * or above a saved flags. Eflags has bits 22-31 zero,
+                * kernel addresses don't.
+                */
                if (sp[0] >> 22)
                        return sp[0];
                if (sp[1] >> 22)