aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lib/traceevent/event-parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lib/traceevent/event-parse.c')
-rw-r--r--tools/lib/traceevent/event-parse.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
index bb22238debfe..6f842af4550b 100644
--- a/tools/lib/traceevent/event-parse.c
+++ b/tools/lib/traceevent/event-parse.c
@@ -4367,10 +4367,20 @@ static struct tep_print_arg *make_bprint_args(char *fmt, void *data, int size, s
4367 switch (*ptr) { 4367 switch (*ptr) {
4368 case 's': 4368 case 's':
4369 case 'S': 4369 case 'S':
4370 case 'f':
4371 case 'F':
4372 case 'x': 4370 case 'x':
4373 break; 4371 break;
4372 case 'f':
4373 case 'F':
4374 /*
4375 * Pre-5.5 kernels use %pf and
4376 * %pF for printing symbols
4377 * while kernels since 5.5 use
4378 * %pfw for fwnodes. So check
4379 * %p[fF] isn't followed by 'w'.
4380 */
4381 if (ptr[1] != 'w')
4382 break;
4383 /* fall through */
4374 default: 4384 default:
4375 /* 4385 /*
4376 * Older kernels do not process 4386 * Older kernels do not process
@@ -4487,12 +4497,12 @@ get_bprint_format(void *data, int size __maybe_unused,
4487 4497
4488 printk = find_printk(tep, addr); 4498 printk = find_printk(tep, addr);
4489 if (!printk) { 4499 if (!printk) {
4490 if (asprintf(&format, "%%pf: (NO FORMAT FOUND at %llx)\n", addr) < 0) 4500 if (asprintf(&format, "%%ps: (NO FORMAT FOUND at %llx)\n", addr) < 0)
4491 return NULL; 4501 return NULL;
4492 return format; 4502 return format;
4493 } 4503 }
4494 4504
4495 if (asprintf(&format, "%s: %s", "%pf", printk->printk) < 0) 4505 if (asprintf(&format, "%s: %s", "%ps", printk->printk) < 0)
4496 return NULL; 4506 return NULL;
4497 4507
4498 return format; 4508 return format;