Re: [PATCH v4 07/11] lib/vsprintf: Remove support for %pF and %pf in favour of %pS and %ps

From: Sakari Ailus
Date: Fri Sep 06 2019 - 02:59:23 EST


On Tue, Sep 03, 2019 at 04:04:20PM +0200, Petr Mladek wrote:
> On Mon 2019-09-02 19:01:39, Andy Shevchenko wrote:
> > On Mon, Sep 02, 2019 at 04:39:35PM +0200, Petr Mladek wrote:
> > > On Mon 2019-09-02 11:32:36, Sakari Ailus wrote:
> > > > %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.
> > >
> > > Hmm, I see the following in master:
> > >
> > > $> git grep %pF
> > > tools/lib/traceevent/Documentation/libtraceevent-func_apis.txt:or events have "%pF" or "%pS" parameter in its format string. It is common to
> > >
> > > $> git grep %pf
> > > tools/lib/traceevent/event-parse.c: if (asprintf(&format, "%%pf: (NO FORMAT FOUND at %llx)\n", addr) < 0)
> > > tools/lib/traceevent/event-parse.c: if (asprintf(&format, "%s: %s", "%pf", printk->printk) < 0)
> > >
> > > I wonder how this is related to printk(). In each case, it seems
> >
> > It's going thru binary printf() I suppose. The fist stage just saves the format
> > string and argument addresses or so and prints in later on when user is looking
> > for human-readable output.
>
> It seems that vbin_printf() still thinks that %pf and %pF
> handle function pointers. If I get it correctly, it just
> stores the binary data and the formating is done when
> tracing log is read. The idea is the function pointers
> will stay the same.
>
> We need to fix/obsolete this path as well.

Agreed. I'll include a patch to do that in v6.

--
Sakari Ailus
sakari.ailus@xxxxxxxxxxxxxxx