Re: [PATCH] printk-formats.txt: Add examples for %pS and %pF

From: Sergey Senozhatsky
Date: Thu Aug 10 2017 - 20:15:12 EST


On (08/10/17 19:35), Helge Deller wrote:
> Sometimes people seems unclear when to use the %pS or %pF printk format.
> Adding some examples may help to avoid such mistakes.
>
> See for example commit 51d96dc2e2dc ("random: fix warning message on ia64 and
> parisc") which fixed such a wrong format string.
>
> Signed-off-by: Helge Deller <deller@xxxxxx>
>
> diff --git a/Documentation/printk-formats.txt b/Documentation/printk-formats.txt
> index 65ea591..be8c05b 100644
> --- a/Documentation/printk-formats.txt
> +++ b/Documentation/printk-formats.txt
> @@ -73,6 +73,12 @@ actually function descriptors which must first be resolved. The ``F`` and
> ``f`` specifiers perform this resolution and then provide the same
> functionality as the ``S`` and ``s`` specifiers.
>
> +Examples::
> +
> + printk("Called from %pS.\n", __builtin_return_address(0));
> + printk("Called from %pS.\n", (void *)regs->ip);
> + printk("Called from %pF.\n", &gettimeofday);

sorry, but how does it help?


there is this paragraph

: On ia64, ppc64 and parisc64 architectures function pointers are
: actually function descriptors which must first be resolved. The ``F`` and
: ``f`` specifiers perform this resolution and then provide the same
: functionality as the ``S`` and ``s`` specifiers.

which supposed to explain everything in details. the examples
don't make it any `clearer', IMHO.


*may be* on "ia64, ppc64 and parisc64" we can somehow check
that the pointer, which we pass as %pS, belongs to .text and
print some build-time warnings. well, if it's actually a
problem. dunno.

-ss