On Thu, 2017-10-26 at 13:53 +1100, Tobin C. Harding wrote: > Currently pointer() checks for a NULL pointer argument and then if so > attempts to print "(null)" with _some_ standard width. This width cannot > correctly be ascertained here because many of the printk specifiers > print pointers of varying widths.
I believe this is not a good change. Only pointers without a <foo> extension call pointer() > Remove the attempt to print NULL pointers with a correct width. the correct width for a %p is the default width. The correct width for %p<foo> is unknown. > Signed-off-by: Tobin C. Harding <m...@tobin.cc> > --- > lib/vsprintf.c | 9 +-------- > 1 file changed, 1 insertion(+), 8 deletions(-) > > diff --git a/lib/vsprintf.c b/lib/vsprintf.c > index 86c3385b9eb3..16a587aed40e 100644 > --- a/lib/vsprintf.c > +++ b/lib/vsprintf.c > @@ -1710,15 +1710,8 @@ char *pointer(const char *fmt, char *buf, char *end, > void *ptr, > { > const int default_width = 2 * sizeof(void *); > > - if (!ptr && *fmt != 'K') { > - /* > - * Print (null) with the same width as a pointer so it makes > - * tabular output look nice. > - */ > - if (spec.field_width == -1) > - spec.field_width = default_width; > + if (!ptr && *fmt != 'K') > return string(buf, end, "(null)", spec); > - } > > switch (*fmt) { > case 'F':