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

Alastair D'Silva alastair at d-silva.org
Mon Apr 15 10:07:10 UTC 2019


> -----Original Message-----
> From: Petr Mladek <pmladek at suse.com>
> Sent: Monday, 15 April 2019 7:24 PM
> To: Alastair D'Silva <alastair at d-silva.org>
> Cc: 'Alastair D'Silva' <alastair at au1.ibm.com>; 'Jani Nikula'
> <jani.nikula at linux.intel.com>; 'Joonas Lahtinen'
> <joonas.lahtinen at linux.intel.com>; 'Rodrigo Vivi'
<rodrigo.vivi at intel.com>;
> 'David Airlie' <airlied at linux.ie>; 'Daniel Vetter' <daniel at ffwll.ch>;
'Karsten
> Keil' <isdn at linux-pingi.de>; 'Jassi Brar' <jassisinghbrar at gmail.com>; 'Tom
> Lendacky' <thomas.lendacky at amd.com>; 'David S. Miller'
> <davem at davemloft.net>; 'Jose Abreu' <Jose.Abreu at synopsys.com>; 'Kalle
> Valo' <kvalo at codeaurora.org>; 'Stanislaw Gruszka' <sgruszka at redhat.com>;
> 'Benson Leung' <bleung at chromium.org>; 'Enric Balletbo i Serra'
> <enric.balletbo at collabora.com>; 'James E.J. Bottomley'
> <jejb at linux.ibm.com>; 'Martin K. Petersen' <martin.petersen at oracle.com>;
> 'Greg Kroah-Hartman' <gregkh at linuxfoundation.org>; 'Alexander Viro'
> <viro at zeniv.linux.org.uk>; 'Sergey Senozhatsky'
> <sergey.senozhatsky at gmail.com>; 'Steven Rostedt'
> <rostedt at goodmis.org>; 'Andrew Morton' <akpm at linux-foundation.org>;
> intel-gfx at lists.freedesktop.org; dri-devel at lists.freedesktop.org; linux-
> kernel at vger.kernel.org; netdev at vger.kernel.org;
> ath10k at lists.infradead.org; linux-wireless at vger.kernel.org; linux-
> scsi at vger.kernel.org; linux-fbdev at vger.kernel.org;
> devel at driverdev.osuosl.org; linux-fsdevel at vger.kernel.org
> 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 at suse.com>
> > > Sent: Saturday, 13 April 2019 12:12 AM
> > > To: Alastair D'Silva <alastair at au1.ibm.com>
> > > Cc: alastair at d-silva.org; Jani Nikula <jani.nikula at linux.intel.com>;
> > Joonas
> > > Lahtinen <joonas.lahtinen at linux.intel.com>; Rodrigo Vivi
> > > <rodrigo.vivi at intel.com>; David Airlie <airlied at linux.ie>; Daniel
> > > Vetter <daniel at ffwll.ch>; Karsten Keil <isdn at linux-pingi.de>; Jassi
> > > Brar <jassisinghbrar at gmail.com>; Tom Lendacky
> > > <thomas.lendacky at amd.com>; David S. Miller
> <davem at davemloft.net>;
> > > Jose Abreu <Jose.Abreu at synopsys.com>; Kalle Valo
> > > <kvalo at codeaurora.org>; Stanislaw Gruszka <sgruszka at redhat.com>;
> > > Benson Leung <bleung at chromium.org>; Enric Balletbo i Serra
> > > <enric.balletbo at collabora.com>; James E.J. Bottomley
> > > <jejb at linux.ibm.com>; Martin K. Petersen
> > > <martin.petersen at oracle.com>; Greg Kroah-Hartman
> > > <gregkh at linuxfoundation.org>; Alexander Viro
> > > <viro at zeniv.linux.org.uk>; Sergey Senozhatsky
> > > <sergey.senozhatsky at gmail.com>; Steven Rostedt
> > > <rostedt at goodmis.org>; Andrew Morton <akpm at linux-
> foundation.org>;
> > > intel- gfx at lists.freedesktop.org; dri-devel at lists.freedesktop.org;
> > > linux- kernel at vger.kernel.org; netdev at vger.kernel.org;
> > > ath10k at lists.infradead.org; linux-wireless at vger.kernel.org; linux-
> > > scsi at vger.kernel.org; linux-fbdev at vger.kernel.org;
> > > devel at driverdev.osuosl.org; linux-fsdevel at vger.kernel.org
> > > 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 at d-silva.org>
> > > >
> > > > 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 at d-silva.org>
> > > > ---
> > > >  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 at d-silva.org
blog: http://alastair.d-silva.org    Twitter: @EvilDeece



More information about the devel mailing list