diff options
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r-- | arch/x86/kernel/traps_32.c | 4 |
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; |