]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
powerpc: Don't use %pK through printk
authorThomas Weißschuh <thomas.weissschuh@linutronix.de>
Fri, 18 Jul 2025 13:20:25 +0000 (15:20 +0200)
committerMadhavan Srinivasan <maddy@linux.ibm.com>
Tue, 22 Jul 2025 08:51:18 +0000 (14:21 +0530)
In the past %pK was preferable to %p as it would not leak raw pointer
values into the kernel log.
Since commit ad67b74d2469 ("printk: hash addresses printed with %p")
the regular %p has been improved to avoid this issue.
Furthermore, restricted pointers ("%pK") were never meant to be used
through printk(). They can still unintentionally leak raw pointers or
acquire sleeping locks in atomic contexts.

Switch to the regular pointer formatting which is safer and
easier to reason about.

Link: https://lore.kernel.org/lkml/20250113171731-dc10e3c1-da64-4af0-b767-7c7070468023@linutronix.de/
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/20250718-restricted-pointers-powerpc-v2-1-fd7bddd809f3@linutronix.de
arch/powerpc/kernel/eeh_driver.c
arch/powerpc/perf/hv-24x7.c

index 7efe04c68f0fe3fb1c3c13d97d58e79e47cf103b..10ce6b3bd3b7c54f91544ae7f7fd3f32a51ee09a 100644 (file)
@@ -907,7 +907,7 @@ void eeh_handle_normal_event(struct eeh_pe *pe)
                /* FIXME: Use the same format as dump_stack() */
                pr_err("EEH: Call Trace:\n");
                for (i = 0; i < pe->trace_entries; i++)
-                       pr_err("EEH: [%pK] %pS\n", ptrs[i], ptrs[i]);
+                       pr_err("EEH: [%p] %pS\n", ptrs[i], ptrs[i]);
 
                pe->trace_entries = 0;
        }
index b0768f3d289300826dcd454a8e397a943572fd45..340526fcaba60c38a35f37befc41544ab52d1e5e 100644 (file)
@@ -713,12 +713,12 @@ static ssize_t catalog_event_len_validate(struct hv_24x7_event_data *event,
        ev_len = be16_to_cpu(event->length);
 
        if (ev_len % 16)
-               pr_info("event %zu has length %zu not divisible by 16: event=%pK\n",
+               pr_info("event %zu has length %zu not divisible by 16: event=%p\n",
                                event_idx, ev_len, event);
 
        ev_end = (__u8 *)event + ev_len;
        if (ev_end > end) {
-               pr_warn("event %zu has .length=%zu, ends after buffer end: ev_end=%pK > end=%pK, offset=%zu\n",
+               pr_warn("event %zu has .length=%zu, ends after buffer end: ev_end=%p > end=%p, offset=%zu\n",
                                event_idx, ev_len, ev_end, end,
                                offset);
                return -1;
@@ -726,14 +726,14 @@ static ssize_t catalog_event_len_validate(struct hv_24x7_event_data *event,
 
        calc_ev_end = event_end(event, end);
        if (!calc_ev_end) {
-               pr_warn("event %zu has a calculated length which exceeds buffer length %zu: event=%pK end=%pK, offset=%zu\n",
+               pr_warn("event %zu has a calculated length which exceeds buffer length %zu: event=%p end=%p, offset=%zu\n",
                        event_idx, event_data_bytes, event, end,
                        offset);
                return -1;
        }
 
        if (calc_ev_end > ev_end) {
-               pr_warn("event %zu exceeds its own length: event=%pK, end=%pK, offset=%zu, calc_ev_end=%pK\n",
+               pr_warn("event %zu exceeds its own length: event=%p, end=%p, offset=%zu, calc_ev_end=%p\n",
                        event_idx, event, ev_end, offset, calc_ev_end);
                return -1;
        }