Commit d8104182 authored by Michael Ellerman's avatar Michael Ellerman

powerpc/xmon: Don't print hashed pointers in xmon

Since commit ad67b74d ("printk: hash addresses printed with %p")
pointers printed with %p are hashed, ie. you don't see the actual
pointer value but rather a cryptographic hash of its value.

In xmon we want to see the actual pointer values, because xmon is a
debugger, so replace %p with %px which prints the actual pointer
value.

We justify doing this in xmon because 1) xmon is a kernel crash
debugger, it's only accessible via the console 2) xmon doesn't print
to dmesg, so the pointers it prints are not able to be leaked that
way.
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 371b8044
...@@ -1590,7 +1590,7 @@ static void print_bug_trap(struct pt_regs *regs) ...@@ -1590,7 +1590,7 @@ static void print_bug_trap(struct pt_regs *regs)
printf("kernel BUG at %s:%u!\n", printf("kernel BUG at %s:%u!\n",
bug->file, bug->line); bug->file, bug->line);
#else #else
printf("kernel BUG at %p!\n", (void *)bug->bug_addr); printf("kernel BUG at %px!\n", (void *)bug->bug_addr);
#endif #endif
#endif /* CONFIG_BUG */ #endif /* CONFIG_BUG */
} }
...@@ -2329,7 +2329,7 @@ static void dump_one_paca(int cpu) ...@@ -2329,7 +2329,7 @@ static void dump_one_paca(int cpu)
p = &paca[cpu]; p = &paca[cpu];
printf("paca for cpu 0x%x @ %p:\n", cpu, p); printf("paca for cpu 0x%x @ %px:\n", cpu, p);
printf(" %-*s = %s\n", 20, "possible", cpu_possible(cpu) ? "yes" : "no"); printf(" %-*s = %s\n", 20, "possible", cpu_possible(cpu) ? "yes" : "no");
printf(" %-*s = %s\n", 20, "present", cpu_present(cpu) ? "yes" : "no"); printf(" %-*s = %s\n", 20, "present", cpu_present(cpu) ? "yes" : "no");
...@@ -2945,7 +2945,7 @@ static void show_task(struct task_struct *tsk) ...@@ -2945,7 +2945,7 @@ static void show_task(struct task_struct *tsk)
(tsk->exit_state & EXIT_DEAD) ? 'E' : (tsk->exit_state & EXIT_DEAD) ? 'E' :
(tsk->state & TASK_INTERRUPTIBLE) ? 'S' : '?'; (tsk->state & TASK_INTERRUPTIBLE) ? 'S' : '?';
printf("%p %016lx %6d %6d %c %2d %s\n", tsk, printf("%px %016lx %6d %6d %c %2d %s\n", tsk,
tsk->thread.ksp, tsk->thread.ksp,
tsk->pid, tsk->parent->pid, tsk->pid, tsk->parent->pid,
state, task_thread_info(tsk)->cpu, state, task_thread_info(tsk)->cpu,
...@@ -2988,7 +2988,7 @@ static void show_pte(unsigned long addr) ...@@ -2988,7 +2988,7 @@ static void show_pte(unsigned long addr)
if (setjmp(bus_error_jmp) != 0) { if (setjmp(bus_error_jmp) != 0) {
catch_memory_errors = 0; catch_memory_errors = 0;
printf("*** Error dumping pte for task %p\n", tsk); printf("*** Error dumping pte for task %px\n", tsk);
return; return;
} }
...@@ -3074,7 +3074,7 @@ static void show_tasks(void) ...@@ -3074,7 +3074,7 @@ static void show_tasks(void)
if (setjmp(bus_error_jmp) != 0) { if (setjmp(bus_error_jmp) != 0) {
catch_memory_errors = 0; catch_memory_errors = 0;
printf("*** Error dumping task %p\n", tsk); printf("*** Error dumping task %px\n", tsk);
return; return;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment