[PATCH v4 10/12] staging: unisys: use seq_hex_dump() to dump buffers

Andy Shevchenko
2014-09-04T14:28:51Z

Instead of custom approach let's use recently introduced seq_hex_dump() helper.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
.../unisys/visorchannel/visorchannel_funcs.c | 26 ++++------------------
1 file changed, 4 insertions(+), 22 deletions(-)

diff --git a/drivers/staging/unisys/visorchannel/visorchannel_funcs.c b/drivers/staging/unisys/visorchannel/visorchannel_funcs.c
index 947b23c..d8345a6 100644
--- a/drivers/staging/unisys/visorchannel/visorchannel_funcs.c
+++ b/drivers/staging/unisys/visorchannel/visorchannel_funcs.c
@@ -633,15 +633,11 @@ void
visorchannel_dump_section(VISORCHANNEL *chan, char *s,
int off, int len, struct seq_file *seq)
{
- char *buf, *tbuf, *fmtbuf;
- int fmtbufsize = 0;
- int i;
+ char *buf;
int errcode = 0;

- fmtbufsize = 100 * COVQ(len, 16);
buf = kmalloc(len, GFP_KERNEL|__GFP_NORETRY);
- fmtbuf = kmalloc(fmtbufsize, GFP_KERNEL|__GFP_NORETRY);
- if (buf == NULL || fmtbuf == NULL)
+ if (buf == NULL)
goto Away;

errcode = visorchannel_read(chan, off, buf, len);
@@ -651,23 +647,9 @@ visorchannel_dump_section(VISORCHANNEL *chan, char *s,
goto Away;
}
seq_printf(seq, "channel %s:\n", s);
- tbuf = buf;
- while (len > 0) {
- i = (len < 16) ? len : 16;
- hex_dump_to_buffer(tbuf, i, 16, 1, fmtbuf, fmtbufsize, TRUE);
- seq_printf(seq, "%s\n", fmtbuf);
- tbuf += 16;
- len -= 16;
- }
+ seq_hex_dump(seq, "", DUMP_PREFIX_NONE, 16, 1, buf, len, true);

Away:
- if (buf != NULL) {
- kfree(buf);
- buf = NULL;
- }
- if (fmtbuf != NULL) {
- kfree(fmtbuf);
- fmtbuf = NULL;
- }
+ kfree(buf);
}
EXPORT_SYMBOL_GPL(visorchannel_dump_section);
--
2.1.0