Skip to content

Commit 568fb6f

Browse files
chleroyDaniel Thompson
authored andcommitted
kdb: print real address of pointers instead of hashed addresses
Since commit ad67b74 ("printk: hash addresses printed with %p"), all pointers printed with %p are printed with hashed addresses instead of real addresses in order to avoid leaking addresses in dmesg and syslog. But this applies to kdb too, with is unfortunate: Entering kdb (current=0x(ptrval), pid 329) due to Keyboard Entry kdb> ps 15 sleeping system daemon (state M) processes suppressed, use 'ps A' to see all. Task Addr Pid Parent [*] cpu State Thread Command 0x(ptrval) 329 328 1 0 R 0x(ptrval) *sh 0x(ptrval) 1 0 0 0 S 0x(ptrval) init 0x(ptrval) 3 2 0 0 D 0x(ptrval) rcu_gp 0x(ptrval) 4 2 0 0 D 0x(ptrval) rcu_par_gp 0x(ptrval) 5 2 0 0 D 0x(ptrval) kworker/0:0 0x(ptrval) 6 2 0 0 D 0x(ptrval) kworker/0:0H 0x(ptrval) 7 2 0 0 D 0x(ptrval) kworker/u2:0 0x(ptrval) 8 2 0 0 D 0x(ptrval) mm_percpu_wq 0x(ptrval) 10 2 0 0 D 0x(ptrval) rcu_preempt The whole purpose of kdb is to debug, and for debugging real addresses need to be known. In addition, data displayed by kdb doesn't go into dmesg. This patch replaces all %p by %px in kdb in order to display real addresses. Fixes: ad67b74 ("printk: hash addresses printed with %p") Cc: <[email protected]> Signed-off-by: Christophe Leroy <[email protected]> Signed-off-by: Daniel Thompson <[email protected]>
1 parent dded2e1 commit 568fb6f

2 files changed

Lines changed: 13 additions & 13 deletions

File tree

kernel/debug/kdb/kdb_main.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,7 +1192,7 @@ static int kdb_local(kdb_reason_t reason, int error, struct pt_regs *regs,
11921192
if (reason == KDB_REASON_DEBUG) {
11931193
/* special case below */
11941194
} else {
1195-
kdb_printf("\nEntering kdb (current=0x%p, pid %d) ",
1195+
kdb_printf("\nEntering kdb (current=0x%px, pid %d) ",
11961196
kdb_current, kdb_current ? kdb_current->pid : 0);
11971197
#if defined(CONFIG_SMP)
11981198
kdb_printf("on processor %d ", raw_smp_processor_id());
@@ -1208,7 +1208,7 @@ static int kdb_local(kdb_reason_t reason, int error, struct pt_regs *regs,
12081208
*/
12091209
switch (db_result) {
12101210
case KDB_DB_BPT:
1211-
kdb_printf("\nEntering kdb (0x%p, pid %d) ",
1211+
kdb_printf("\nEntering kdb (0x%px, pid %d) ",
12121212
kdb_current, kdb_current->pid);
12131213
#if defined(CONFIG_SMP)
12141214
kdb_printf("on processor %d ", raw_smp_processor_id());
@@ -2048,7 +2048,7 @@ static int kdb_lsmod(int argc, const char **argv)
20482048
if (mod->state == MODULE_STATE_UNFORMED)
20492049
continue;
20502050

2051-
kdb_printf("%-20s%8u 0x%p ", mod->name,
2051+
kdb_printf("%-20s%8u 0x%px ", mod->name,
20522052
mod->core_layout.size, (void *)mod);
20532053
#ifdef CONFIG_MODULE_UNLOAD
20542054
kdb_printf("%4d ", module_refcount(mod));
@@ -2059,7 +2059,7 @@ static int kdb_lsmod(int argc, const char **argv)
20592059
kdb_printf(" (Loading)");
20602060
else
20612061
kdb_printf(" (Live)");
2062-
kdb_printf(" 0x%p", mod->core_layout.base);
2062+
kdb_printf(" 0x%px", mod->core_layout.base);
20632063

20642064
#ifdef CONFIG_MODULE_UNLOAD
20652065
{
@@ -2341,7 +2341,7 @@ void kdb_ps1(const struct task_struct *p)
23412341
return;
23422342

23432343
cpu = kdb_process_cpu(p);
2344-
kdb_printf("0x%p %8d %8d %d %4d %c 0x%p %c%s\n",
2344+
kdb_printf("0x%px %8d %8d %d %4d %c 0x%px %c%s\n",
23452345
(void *)p, p->pid, p->parent->pid,
23462346
kdb_task_has_cpu(p), kdb_process_cpu(p),
23472347
kdb_task_state_char(p),
@@ -2354,7 +2354,7 @@ void kdb_ps1(const struct task_struct *p)
23542354
} else {
23552355
if (KDB_TSK(cpu) != p)
23562356
kdb_printf(" Error: does not match running "
2357-
"process table (0x%p)\n", KDB_TSK(cpu));
2357+
"process table (0x%px)\n", KDB_TSK(cpu));
23582358
}
23592359
}
23602360
}
@@ -2687,7 +2687,7 @@ int kdb_register_flags(char *cmd,
26872687
for_each_kdbcmd(kp, i) {
26882688
if (kp->cmd_name && (strcmp(kp->cmd_name, cmd) == 0)) {
26892689
kdb_printf("Duplicate kdb command registered: "
2690-
"%s, func %p help %s\n", cmd, func, help);
2690+
"%s, func %px help %s\n", cmd, func, help);
26912691
return 1;
26922692
}
26932693
}

kernel/debug/kdb/kdb_support.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
int kdbgetsymval(const char *symname, kdb_symtab_t *symtab)
4141
{
4242
if (KDB_DEBUG(AR))
43-
kdb_printf("kdbgetsymval: symname=%s, symtab=%p\n", symname,
43+
kdb_printf("kdbgetsymval: symname=%s, symtab=%px\n", symname,
4444
symtab);
4545
memset(symtab, 0, sizeof(*symtab));
4646
symtab->sym_start = kallsyms_lookup_name(symname);
@@ -88,7 +88,7 @@ int kdbnearsym(unsigned long addr, kdb_symtab_t *symtab)
8888
char *knt1 = NULL;
8989

9090
if (KDB_DEBUG(AR))
91-
kdb_printf("kdbnearsym: addr=0x%lx, symtab=%p\n", addr, symtab);
91+
kdb_printf("kdbnearsym: addr=0x%lx, symtab=%px\n", addr, symtab);
9292
memset(symtab, 0, sizeof(*symtab));
9393

9494
if (addr < 4096)
@@ -149,7 +149,7 @@ int kdbnearsym(unsigned long addr, kdb_symtab_t *symtab)
149149
symtab->mod_name = "kernel";
150150
if (KDB_DEBUG(AR))
151151
kdb_printf("kdbnearsym: returns %d symtab->sym_start=0x%lx, "
152-
"symtab->mod_name=%p, symtab->sym_name=%p (%s)\n", ret,
152+
"symtab->mod_name=%px, symtab->sym_name=%px (%s)\n", ret,
153153
symtab->sym_start, symtab->mod_name, symtab->sym_name,
154154
symtab->sym_name);
155155

@@ -887,13 +887,13 @@ void debug_kusage(void)
887887
__func__, dah_first);
888888
if (dah_first) {
889889
h_used = (struct debug_alloc_header *)debug_alloc_pool;
890-
kdb_printf("%s: h_used %p size %d\n", __func__, h_used,
890+
kdb_printf("%s: h_used %px size %d\n", __func__, h_used,
891891
h_used->size);
892892
}
893893
do {
894894
h_used = (struct debug_alloc_header *)
895895
((char *)h_free + dah_overhead + h_free->size);
896-
kdb_printf("%s: h_used %p size %d caller %p\n",
896+
kdb_printf("%s: h_used %px size %d caller %px\n",
897897
__func__, h_used, h_used->size, h_used->caller);
898898
h_free = (struct debug_alloc_header *)
899899
(debug_alloc_pool + h_free->next);
@@ -902,7 +902,7 @@ void debug_kusage(void)
902902
((char *)h_free + dah_overhead + h_free->size);
903903
if ((char *)h_used - debug_alloc_pool !=
904904
sizeof(debug_alloc_pool_aligned))
905-
kdb_printf("%s: h_used %p size %d caller %p\n",
905+
kdb_printf("%s: h_used %px size %d caller %px\n",
906906
__func__, h_used, h_used->size, h_used->caller);
907907
out:
908908
spin_unlock(&dap_lock);

0 commit comments

Comments
 (0)