diff options
author | Anton Blanchard <anton@samba.org> | 2006-10-12 22:17:16 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-10-16 01:53:30 -0400 |
commit | 00ae36de49cc718d4122e1c8aac96fd1a5a2553c (patch) | |
tree | 42cfa3ddd7fb403fb9e03848eb3e7c4bc5050185 | |
parent | 99f48610252b736908fa5bdea505a480368308d6 (diff) |
[POWERPC] Better check in show_instructions
Instead of just checking that an address is in the right range, use the
provided __kernel_text_address() helper which covers both the kernel and
module text sections.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r-- | arch/powerpc/kernel/process.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index 7b2f6452ba72..f3d4dd580dd6 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
@@ -341,13 +341,6 @@ struct task_struct *__switch_to(struct task_struct *prev, | |||
341 | 341 | ||
342 | static int instructions_to_print = 16; | 342 | static int instructions_to_print = 16; |
343 | 343 | ||
344 | #ifdef CONFIG_PPC64 | ||
345 | #define BAD_PC(pc) ((REGION_ID(pc) != KERNEL_REGION_ID) && \ | ||
346 | (REGION_ID(pc) != VMALLOC_REGION_ID)) | ||
347 | #else | ||
348 | #define BAD_PC(pc) ((pc) < KERNELBASE) | ||
349 | #endif | ||
350 | |||
351 | static void show_instructions(struct pt_regs *regs) | 344 | static void show_instructions(struct pt_regs *regs) |
352 | { | 345 | { |
353 | int i; | 346 | int i; |
@@ -366,7 +359,8 @@ static void show_instructions(struct pt_regs *regs) | |||
366 | * bad address because the pc *should* only be a | 359 | * bad address because the pc *should* only be a |
367 | * kernel address. | 360 | * kernel address. |
368 | */ | 361 | */ |
369 | if (BAD_PC(pc) || __get_user(instr, (unsigned int __user *)pc)) { | 362 | if (!__kernel_text_address(pc) || |
363 | __get_user(instr, (unsigned int __user *)pc)) { | ||
370 | printk("XXXXXXXX "); | 364 | printk("XXXXXXXX "); |
371 | } else { | 365 | } else { |
372 | if (regs->nip == pc) | 366 | if (regs->nip == pc) |