RDMA/nes: replace custom print_hex_dump()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 6 May 2016 17:19:42 +0000 (20:19 +0300)
committerDoug Ledford <dledford@redhat.com>
Fri, 13 May 2016 23:40:01 +0000 (19:40 -0400)
There is no need to duplicate a lot of code that is in the kernel library for ages.
Replace duplicating code by calling to print_hex_dump() directly.

Note that output is slightly changed:
- hex and ascii parts have just two spaces delimeter
- there is no delimeter for ascii portions
- file and line removed from prefix (they were redundant anyway since previous
  output shows same closer enough)

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/nes/nes_utils.c

index 6d3a169..37331e2 100644 (file)
@@ -44,6 +44,7 @@
 #include <linux/ip.h>
 #include <linux/tcp.h>
 #include <linux/init.h>
+#include <linux/kernel.h>
 
 #include <asm/io.h>
 #include <asm/irq.h>
@@ -903,70 +904,15 @@ void nes_clc(unsigned long parm)
  */
 void nes_dump_mem(unsigned int dump_debug_level, void *addr, int length)
 {
-       char  xlate[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
-               'a', 'b', 'c', 'd', 'e', 'f'};
-       char  *ptr;
-       char  hex_buf[80];
-       char  ascii_buf[20];
-       int   num_char;
-       int   num_ascii;
-       int   num_hex;
-
        if (!(nes_debug_level & dump_debug_level)) {
                return;
        }
 
-       ptr = addr;
        if (length > 0x100) {
                nes_debug(dump_debug_level, "Length truncated from %x to %x\n", length, 0x100);
                length = 0x100;
        }
-       nes_debug(dump_debug_level, "Address=0x%p, length=0x%x (%d)\n", ptr, length, length);
-
-       memset(ascii_buf, 0, 20);
-       memset(hex_buf, 0, 80);
-
-       num_ascii = 0;
-       num_hex = 0;
-       for (num_char = 0; num_char < length; num_char++) {
-               if (num_ascii == 8) {
-                       ascii_buf[num_ascii++] = ' ';
-                       hex_buf[num_hex++] = '-';
-                       hex_buf[num_hex++] = ' ';
-               }
-
-               if (*ptr < 0x20 || *ptr > 0x7e)
-                       ascii_buf[num_ascii++] = '.';
-               else
-                       ascii_buf[num_ascii++] = *ptr;
-               hex_buf[num_hex++] = xlate[((*ptr & 0xf0) >> 4)];
-               hex_buf[num_hex++] = xlate[*ptr & 0x0f];
-               hex_buf[num_hex++] = ' ';
-               ptr++;
-
-               if (num_ascii >= 17) {
-                       /* output line and reset */
-                       nes_debug(dump_debug_level, "   %s |  %s\n", hex_buf, ascii_buf);
-                       memset(ascii_buf, 0, 20);
-                       memset(hex_buf, 0, 80);
-                       num_ascii = 0;
-                       num_hex = 0;
-               }
-       }
+       nes_debug(dump_debug_level, "Address=0x%p, length=0x%x (%d)\n", addr, length, length);
 
-       /* output the rest */
-       if (num_ascii) {
-               while (num_ascii < 17) {
-                       if (num_ascii == 8) {
-                               hex_buf[num_hex++] = ' ';
-                               hex_buf[num_hex++] = ' ';
-                       }
-                       hex_buf[num_hex++] = ' ';
-                       hex_buf[num_hex++] = ' ';
-                       hex_buf[num_hex++] = ' ';
-                       num_ascii++;
-               }
-
-               nes_debug(dump_debug_level, "   %s |  %s\n", hex_buf, ascii_buf);
-       }
+       print_hex_dump(KERN_ERR, PFX, DUMP_PREFIX_NONE, 16, 1, addr, length, true);
 }