lib/vsprintf: Remove support for %pF and %pf in favour of %pS and %ps
authorSakari Ailus <sakari.ailus@linux.intel.com>
Thu, 3 Oct 2019 12:32:14 +0000 (15:32 +0300)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 11 Oct 2019 09:26:55 +0000 (11:26 +0200)
%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.

Depends-on: commit 2d44d165e939 ("scsi: lpfc: Convert existing %pf users to %ps")
Depends-on: commit b295c3e39c13 ("tools lib traceevent: Convert remaining %p[fF] users to %p[sS]")
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Documentation/core-api/printk-formats.rst
lib/vsprintf.c
scripts/checkpatch.pl

index ecbebf4..0c081ed 100644 (file)
@@ -86,8 +86,6 @@ Symbols/Function Pointers
 
        %pS     versatile_init+0x0/0x110
        %ps     versatile_init
-       %pF     versatile_init+0x0/0x110
-       %pf     versatile_init
        %pSR    versatile_init+0x9/0x110
                (with __builtin_extract_return_addr() translation)
        %pB     prev_fn_of_versatile_init+0x88/0x88
@@ -97,14 +95,6 @@ The ``S`` and ``s`` specifiers are used for printing a pointer in symbolic
 format. They result in the symbol name with (S) or without (s)
 offsets. If KALLSYMS are disabled then the symbol address is printed instead.
 
-Note, that the ``F`` and ``f`` specifiers are identical to ``S`` (``s``)
-and thus deprecated. We have ``F`` and ``f`` because on ia64, ppc64 and
-parisc64 function pointers are indirect and, in fact, are function
-descriptors, which require additional dereferencing before we can lookup
-the symbol. As of now, ``S`` and ``s`` perform dereferencing on those
-platforms (when needed), so ``F`` and ``f`` exist for compatibility
-reasons only.
-
 The ``B`` specifier results in the symbol name with offsets and should be
 used when printing stack backtraces. The specifier takes into
 consideration the effect of compiler optimisations which may occur
index e78017a..7eb6417 100644 (file)
@@ -918,7 +918,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);
@@ -2016,9 +2016,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]
@@ -2121,8 +2119,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);
@@ -2819,8 +2815,6 @@ int vbin_printf(u32 *bin_buf, size_t size, const char *fmt, va_list args)
                        /* Dereference of functions is still OK */
                        case 'S':
                        case 's':
-                       case 'F':
-                       case 'f':
                        case 'x':
                        case 'K':
                                save_arg(void *);
index 6fcc66a..03c574a 100755 (executable)
@@ -6039,7 +6039,6 @@ sub process {
                                        my $ext_type = "Invalid";
                                        my $use = "";
                                        if ($bad_specifier =~ /p[Ff]/) {
-                                               $ext_type = "Deprecated";
                                                $use = " - use %pS instead";
                                                $use =~ s/pS/ps/ if ($bad_specifier =~ /pf/);
                                        }