]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/x86/kernel/traps_32.c
x86: fix 32-bit FRAME_POINTER chasing code
[linux-2.6-omap-h63xx.git] / arch / x86 / kernel / traps_32.c
index 83df0f37ba75dc3e2f7989645dc2e5dc85b54b96..acc9af260facc598ae0dcaf833431503a93d815f 100644 (file)
@@ -125,7 +125,8 @@ static inline unsigned long print_context_stack(struct thread_info *tinfo,
                unsigned long addr;
 
                addr = frame->return_address;
-               ops->address(data, addr);
+               if (__kernel_text_address(addr))
+                       ops->address(data, addr);
                /*
                 * break out of recursive entries (such as
                 * end_of_stack_stop_unwind_function). Also,
@@ -133,6 +134,7 @@ static inline unsigned long print_context_stack(struct thread_info *tinfo,
                 * move downwards!
                 */
                next = frame->next_frame;
+               bp = (unsigned long) next;
                if (next <= frame)
                        break;
                frame = next;