RE: [PATCH 3/4] lib/hexdump.c: Replace ascii bool in hex_dump_to_buffer with flags

From: Alastair D'Silva
Date: Mon Apr 15 2019 - 06:07:33 EST


> -----Original Message-----
> From: Petr Mladek <pmladek@xxxxxxxx>
> Sent: Monday, 15 April 2019 7:24 PM
> To: Alastair D'Silva <alastair@xxxxxxxxxxx>
> Cc: 'Alastair D'Silva' <alastair@xxxxxxxxxxx>; 'Jani Nikula'
> <jani.nikula@xxxxxxxxxxxxxxx>; 'Joonas Lahtinen'
> <joonas.lahtinen@xxxxxxxxxxxxxxx>; 'Rodrigo Vivi'
<rodrigo.vivi@xxxxxxxxx>;
> 'David Airlie' <airlied@xxxxxxxx>; 'Daniel Vetter' <daniel@xxxxxxxx>;
'Karsten
> Keil' <isdn@xxxxxxxxxxxxxx>; 'Jassi Brar' <jassisinghbrar@xxxxxxxxx>; 'Tom
> Lendacky' <thomas.lendacky@xxxxxxx>; 'David S. Miller'
> <davem@xxxxxxxxxxxxx>; 'Jose Abreu' <Jose.Abreu@xxxxxxxxxxxx>; 'Kalle
> Valo' <kvalo@xxxxxxxxxxxxxx>; 'Stanislaw Gruszka' <sgruszka@xxxxxxxxxx>;
> 'Benson Leung' <bleung@xxxxxxxxxxxx>; 'Enric Balletbo i Serra'
> <enric.balletbo@xxxxxxxxxxxxx>; 'James E.J. Bottomley'
> <jejb@xxxxxxxxxxxxx>; 'Martin K. Petersen' <martin.petersen@xxxxxxxxxx>;
> 'Greg Kroah-Hartman' <gregkh@xxxxxxxxxxxxxxxxxxx>; 'Alexander Viro'
> <viro@xxxxxxxxxxxxxxxxxx>; 'Sergey Senozhatsky'
> <sergey.senozhatsky@xxxxxxxxx>; 'Steven Rostedt'
> <rostedt@xxxxxxxxxxx>; 'Andrew Morton' <akpm@xxxxxxxxxxxxxxxxxxxx>;
> intel-gfx@xxxxxxxxxxxxxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx;
> ath10k@xxxxxxxxxxxxxxxxxxx; linux-wireless@xxxxxxxxxxxxxxx; linux-
> scsi@xxxxxxxxxxxxxxx; linux-fbdev@xxxxxxxxxxxxxxx;
> devel@xxxxxxxxxxxxxxxxxxxx; linux-fsdevel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH 3/4] lib/hexdump.c: Replace ascii bool in
> hex_dump_to_buffer with flags
>
> On Sat 2019-04-13 09:31:27, Alastair D'Silva wrote:
> > > -----Original Message-----
> > > From: Petr Mladek <pmladek@xxxxxxxx>
> > > Sent: Saturday, 13 April 2019 12:12 AM
> > > To: Alastair D'Silva <alastair@xxxxxxxxxxx>
> > > Cc: alastair@xxxxxxxxxxx; Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx>;
> > Joonas
> > > Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx>; Rodrigo Vivi
> > > <rodrigo.vivi@xxxxxxxxx>; David Airlie <airlied@xxxxxxxx>; Daniel
> > > Vetter <daniel@xxxxxxxx>; Karsten Keil <isdn@xxxxxxxxxxxxxx>; Jassi
> > > Brar <jassisinghbrar@xxxxxxxxx>; Tom Lendacky
> > > <thomas.lendacky@xxxxxxx>; David S. Miller
> <davem@xxxxxxxxxxxxx>;
> > > Jose Abreu <Jose.Abreu@xxxxxxxxxxxx>; Kalle Valo
> > > <kvalo@xxxxxxxxxxxxxx>; Stanislaw Gruszka <sgruszka@xxxxxxxxxx>;
> > > Benson Leung <bleung@xxxxxxxxxxxx>; Enric Balletbo i Serra
> > > <enric.balletbo@xxxxxxxxxxxxx>; James E.J. Bottomley
> > > <jejb@xxxxxxxxxxxxx>; Martin K. Petersen
> > > <martin.petersen@xxxxxxxxxx>; Greg Kroah-Hartman
> > > <gregkh@xxxxxxxxxxxxxxxxxxx>; Alexander Viro
> > > <viro@xxxxxxxxxxxxxxxxxx>; Sergey Senozhatsky
> > > <sergey.senozhatsky@xxxxxxxxx>; Steven Rostedt
> > > <rostedt@xxxxxxxxxxx>; Andrew Morton <akpm@linux-
> foundation.org>;
> > > intel- gfx@xxxxxxxxxxxxxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx;
> > > linux- kernel@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx;
> > > ath10k@xxxxxxxxxxxxxxxxxxx; linux-wireless@xxxxxxxxxxxxxxx; linux-
> > > scsi@xxxxxxxxxxxxxxx; linux-fbdev@xxxxxxxxxxxxxxx;
> > > devel@xxxxxxxxxxxxxxxxxxxx; linux-fsdevel@xxxxxxxxxxxxxxx
> > > Subject: Re: [PATCH 3/4] lib/hexdump.c: Replace ascii bool in
> > > hex_dump_to_buffer with flags
> > >
> > > On Wed 2019-04-10 13:17:19, Alastair D'Silva wrote:
> > > > From: Alastair D'Silva <alastair@xxxxxxxxxxx>
> > > >
> > > > In order to support additional features in hex_dump_to_buffer,
> > > > replace the ascii bool parameter with flags.
> > > >
> > > > Signed-off-by: Alastair D'Silva <alastair@xxxxxxxxxxx>
> > > > ---
> > > > drivers/gpu/drm/i915/intel_engine_cs.c | 2 +-
> > > > drivers/isdn/hardware/mISDN/mISDNisar.c | 6 ++++--
> > > > drivers/mailbox/mailbox-test.c | 2 +-
> > > > drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 2 +-
> > > > drivers/net/ethernet/synopsys/dwc-xlgmac-common.c | 2 +-
> > > > drivers/net/wireless/ath/ath10k/debug.c | 3 ++-
> > > > drivers/net/wireless/intel/iwlegacy/3945-mac.c | 2 +-
> > > > drivers/platform/chrome/wilco_ec/debugfs.c | 3 ++-
> > > > drivers/scsi/scsi_logging.c | 8 +++-----
> > > > drivers/staging/fbtft/fbtft-core.c | 2 +-
> > > > fs/seq_file.c | 3 ++-
> > > > include/linux/printk.h | 2 +-
> > > > lib/hexdump.c | 15
++++++++-------
> > > > lib/test_hexdump.c | 5 +++--
> > > > 14 files changed, 31 insertions(+), 26 deletions(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c
> > > > b/drivers/gpu/drm/i915/intel_engine_cs.c
> > > > index 49fa43ff02ba..fb133e729f9a 100644
> > > > --- a/drivers/gpu/drm/i915/intel_engine_cs.c
> > > > +++ b/drivers/gpu/drm/i915/intel_engine_cs.c
> > > > @@ -1318,7 +1318,7 @@ static void hexdump(struct drm_printer *m,
> > > > const
> > > void *buf, size_t len)
> > > > WARN_ON_ONCE(hex_dump_to_buffer(buf + pos, len -
> > > pos,
> > > > rowsize,
sizeof(u32),
> > > > line, sizeof(line),
> > > > - false) >=
sizeof(line));
> > > > + 0) >= sizeof(line));
> > >
> > > It might be more clear when we define:
> > >
> > > #define HEXDUMP_BINARY 0
> >
> > This feels unnecessary, and weird. Omitting the flag won't disable the
> > hex output (as expected), and if you don't want hex output why call
> > hexdump in the first place?
>
> Why do we have HEXDUMP_ASCII then?
> Why is the above funtion not using HEXDUMP_ASCII?
> Who would call it with (HEXDUMP_ASCII | HEXDUMP_BINARY)?

The ASCII flag controls the optional ASCII output, and replaces the boolean
that existed prior. A user would enable it in the same situations where they
currently pass true for the ascii parameter.

In the above example the author only wants the hex output, while in other
situations, both hex & ASCII output is desirable. If you just want ASCII
output, the caller should just use a printk or one of it's wrappers.

--
Alastair D'Silva mob: 0423 762 819
skype: alastair_dsilva msn: alastair@xxxxxxxxxxx
blog: http://alastair.d-silva.org Twitter: @EvilDeece