aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r--arch/x86/kernel/traps_32.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kernel/traps_32.c b/arch/x86/kernel/traps_32.c
index 83df0f37ba75..acc9af260fac 100644
--- a/arch/x86/kernel/traps_32.c
+++ b/arch/x86/kernel/traps_32.c
@@ -125,7 +125,8 @@ static inline unsigned long print_context_stack(struct thread_info *tinfo,
125 unsigned long addr; 125 unsigned long addr;
126 126
127 addr = frame->return_address; 127 addr = frame->return_address;
128 ops->address(data, addr); 128 if (__kernel_text_address(addr))
129 ops->address(data, addr);
129 /* 130 /*
130 * break out of recursive entries (such as 131 * break out of recursive entries (such as
131 * end_of_stack_stop_unwind_function). Also, 132 * end_of_stack_stop_unwind_function). Also,
@@ -133,6 +134,7 @@ static inline unsigned long print_context_stack(struct thread_info *tinfo,
133 * move downwards! 134 * move downwards!
134 */ 135 */
135 next = frame->next_frame; 136 next = frame->next_frame;
137 bp = (unsigned long) next;
136 if (next <= frame) 138 if (next <= frame)
137 break; 139 break;
138 frame = next; 140 frame = next;