Re: [PATCH v7 08/13] lib/vsprintf: Remove support for %pF and %pf in favour of %pS and %ps
From: Petr Mladek <pmladek@suse.com>
Date: 2019-09-24 10:38:34
Also in:
linux-acpi, lkml
On Wed 2019-09-18 16:34:14, Sakari Ailus wrote:
quoted hunk ↗ jump to hunk
%pS and %ps are now the preferred conversion specifiers to print function names. The functionality is equivalent; remove the old, deprecated %pF and %pf support.--- a/lib/vsprintf.c +++ b/lib/vsprintf.c@@ -909,7 +909,7 @@ char *symbol_string(char *buf, char *end, void *ptr, #ifdef CONFIG_KALLSYMS if (*fmt == 'B') sprint_backtrace(sym, value); - else if (*fmt != 'f' && *fmt != 's') + else if (*fmt != 's') sprint_symbol(sym, value); else sprint_symbol_no_offset(sym, value);@@ -2007,9 +2007,7 @@ static char *kobject_string(char *buf, char *end, void *ptr, * * - 'S' For symbolic direct pointers (or function descriptors) with offset * - 's' For symbolic direct pointers (or function descriptors) without offset - * - 'F' Same as 'S' - * - 'f' Same as 's' - * - '[FfSs]R' as above with __builtin_extract_return_addr() translation + * - '[Ss]R' as above with __builtin_extract_return_addr() translation * - 'B' For backtraced symbolic direct pointers with offset * - 'R' For decoded struct resource, e.g., [mem 0x0-0x1f 64bit pref] * - 'r' For raw struct resource, e.g., [mem 0x0-0x1f flags 0x201]@@ -2112,8 +2110,6 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, struct printf_spec spec) { switch (*fmt) { - case 'F': - case 'f': case 'S': case 's': ptr = dereference_symbol_descriptor(ptr);
IMHO, we should do the same also in vbin_printf(). The compatibility with traceevent tools was discussed in the thread https://lkml.kernel.org/r/20190910084707.18380-2-sakari.ailus@linux.intel.com If I understand it correctly the tools should be able to handle stored 'f' and 'F' modifiers because they might be produced by older kernels. But new kernels should not longer produce them. Otherwise the patch looks good to me. I am getting used to the fact that we will remove the obsolete specifiers completely. Best Regards, Petr