On Fri, 31 Jul 2020 11:20:21 -0700
Joe Perches <j...@perches.com> wrote:

> On Fri, 2020-07-31 at 21:08 +0300, Andy Shevchenko wrote:
> > When printing phandle via %pOFp the custom spec is used. First of all,
> > it has a SMALL flag which makes no sense for decimal numbers. Second,
> > we have already default spec for decimal numbers. Use the latter in
> > the %pOFp case as well.  
> []
> > diff --git a/lib/vsprintf.c b/lib/vsprintf.c  
> []
> > @@ -1979,12 +1979,6 @@ char *device_node_string(char *buf, char *end, 
> > struct device_node *dn,
> >     char *buf_start = buf;
> >     struct property *prop;
> >     bool has_mult, pass;
> > -   static const struct printf_spec num_spec = {
> > -           .flags = SMALL,
> > -           .field_width = -1,
> > -           .precision = -1,
> > -           .base = 10,
> > -   };
> >  
> >     struct printf_spec str_spec = spec;
> >     str_spec.field_width = -1;
> > @@ -2024,7 +2018,7 @@ char *device_node_string(char *buf, char *end, struct 
> > device_node *dn,
> >                     str_spec.precision = precision;
> >                     break;
> >             case 'p':       /* phandle */
> > -                   buf = number(buf, end, (unsigned int)dn->phandle, 
> > num_spec);
> > +                   buf = number(buf, end, (unsigned int)dn->phandle, 
> > default_dec_spec);  
> 
> Could changing .precision = -1 to 0 change any output?
> 

static const struct printf_spec default_dec_spec = {
        .base = 10,
        .precision = -1,
};


It's the field_width that changes from -1 to 0, which shouldn't cause
any issue.

-- Steve

Reply via email to