Skip to contentSkip to conversation

skd_main: use %*ph to dump small buffers

PATCH Superseded Andy Shevchenko 3 participants 3 messages May 6, 2016 – May 10, 2016 Block layer

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 skd_main: use %*ph to dump small buffers

Replace custom approach by %*ph specifier to dump small buffers in hex format.

Unfortunately we can't use print_hex_dump_bytes() here since tha gap is present, though one familiar with the code may change this.

---
 drivers/block/skd_main.c | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)
drivers/block/skd_main.c +4 -12
index 910e065..2aa7fd4 100644
@@ -2138,12 +2138,8 @@ static void skd_send_fitmsg(struct skd_device *skdev,
 		u8 *bp = (u8 *)skmsg->msg_buf;
 		int i;
 		for (i = 0; i < skmsg->length; i += 8) {
-			pr_debug("%s:%s:%d msg[%2d] %02x %02x %02x %02x "
-				 "%02x %02x %02x %02x\n",
-				 skdev->name, __func__, __LINE__,
-				 i, bp[i + 0], bp[i + 1], bp[i + 2],
-				 bp[i + 3], bp[i + 4], bp[i + 5],
-				 bp[i + 6], bp[i + 7]);
+			pr_debug("%s:%s:%d msg[%2d] %8ph\n",
+				 skdev->name, __func__, __LINE__, i, bp[i]);
 			if (i == 0)
 				i = 64 - 8;
 		}
@@ -2164,7 +2160,6 @@ static void skd_send_fitmsg(struct skd_device *skdev,
 		qcmd |= FIT_QCMD_MSGSIZE_64;
 
 	SKD_WRITEQ(skdev, qcmd, FIT_Q_COMMAND);
-
 }
 
 static void skd_send_special_fitmsg(struct skd_device *skdev,
@@ -2177,11 +2172,8 @@ static void skd_send_special_fitmsg(struct skd_device *skdev,
 		int i;
 
 		for (i = 0; i < SKD_N_SPECIAL_FITMSG_BYTES; i += 8) {
-			pr_debug("%s:%s:%d  spcl[%2d] %02x %02x %02x %02x  "
-				 "%02x %02x %02x %02x\n",
-				 skdev->name, __func__, __LINE__, i,
-				 bp[i + 0], bp[i + 1], bp[i + 2], bp[i + 3],
-				 bp[i + 4], bp[i + 5], bp[i + 6], bp[i + 7]);
+			pr_debug("%s:%s:%d  spcl[%2d] %8ph\n",
+				 skdev->name, __func__, __LINE__, i, bp[i]);
 			if (i == 0)
 				i = 64 - 8;
 		}
Signature · 1 line
2.8.1
#1 lore raw
Quoted 4 lines · Andy Shevchenko

Replace custom approach by %*ph specifier to dump small buffers in hex format.

Unfortunately we can't use print_hex_dump_bytes() here since tha gap is present, though one familiar with the code may change this.

Did you test this?

CC [M] drivers/block/skd_main.o
In file included from include/linux/kernel.h:13:0,
from drivers/block/skd_main.c:19:
drivers/block/skd_main.c: In function ‘skd_send_fitmsg’:
include/linux/kern_levels.h:4:18: warning: format ‘%p’ expects argument of type ‘void *’, but argument 6 has type ‘int’ [-Wformat=]

 #define KERN_SOH "\001"  /* ASCII Start Of Header */
                  ^
include/linux/printk.h:114:10: note: in definition of macro ‘no_printk’
   printk(fmt, ##__VA_ARGS__); \
          ^
include/linux/kern_levels.h:14:20: note: in expansion of macro
‘KERN_SOH’
 #define KERN_DEBUG KERN_SOH "7" /* debug-level messages */
                    ^
include/linux/printk.h:289:12: note: in expansion of macro ‘KERN_DEBUG’
  no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
            ^
drivers/block/skd_main.c:2141:4: note: in expansion of macro ‘pr_debug’
    pr_debug("%s:%s:%d msg[%2d] %8ph\n",
    ^
drivers/block/skd_main.c: In function ‘skd_send_special_fitmsg’:
include/linux/kern_levels.h:4:18: warning: format ‘%p’ expects argument
of type ‘void *’, but argument 6 has type ‘int’ [-Wformat=]
 #define KERN_SOH "\001"  /* ASCII Start Of Header */
                  ^
include/linux/printk.h:114:10: note: in definition of macro ‘no_printk’
   printk(fmt, ##__VA_ARGS__); \
          ^
include/linux/kern_levels.h:14:20: note: in expansion of macro
‘KERN_SOH’
 #define KERN_DEBUG KERN_SOH "7" /* debug-level messages */
                    ^
include/linux/printk.h:289:12: note: in expansion of macro ‘KERN_DEBUG’
  no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
            ^
drivers/block/skd_main.c:2175:4: note: in expansion of macro ‘pr_debug’
    pr_debug("%s:%s:%d  spcl[%2d] %8ph\n",
    ^
Signature · 1 line
Jens Axboe
#2 lore raw
Quoted 10 lines · Jens Axboe
Quoted 6 lines · Andy Shevchenko

Replace custom approach by %*ph specifier to dump small buffers in hex format.

Unfortunately we can't use print_hex_dump_bytes() here since tha gap is present, though one familiar with the code may change this.

Did you test this?

Apparently I missed this somehow.

Typo is obvious, b[i] -> &b[i]

I will send an update and be sure that is compiled successfully. Thanks!

Quoted 43 lines

CC [M] drivers/block/skd_main.o
In file included from include/linux/kernel.h:13:0,
from drivers/block/skd_main.c:19:
drivers/block/skd_main.c: In function ‘skd_send_fitmsg’:
include/linux/kern_levels.h:4:18: warning: format ‘%p’ expects argument of type ‘void *’, but argument 6 has type ‘int’ [-Wformat=]

 #define KERN_SOH "\001"  /* ASCII Start Of Header */
                  ^
include/linux/printk.h:114:10: note: in definition of macro ‘no_printk’
   printk(fmt, ##__VA_ARGS__); \
          ^
include/linux/kern_levels.h:14:20: note: in expansion of macro
‘KERN_SOH’
 #define KERN_DEBUG KERN_SOH "7" /* debug-level messages */
                    ^
include/linux/printk.h:289:12: note: in expansion of macro ‘KERN_DEBUG’
  no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
            ^
drivers/block/skd_main.c:2141:4: note: in expansion of macro ‘pr_debug’
    pr_debug("%s:%s:%d msg[%2d] %8ph\n",
    ^
drivers/block/skd_main.c: In function ‘skd_send_special_fitmsg’:
include/linux/kern_levels.h:4:18: warning: format ‘%p’ expects argument
of type ‘void *’, but argument 6 has type ‘int’ [-Wformat=]
 #define KERN_SOH "\001"  /* ASCII Start Of Header */
                  ^
include/linux/printk.h:114:10: note: in definition of macro ‘no_printk’
   printk(fmt, ##__VA_ARGS__); \
          ^
include/linux/kern_levels.h:14:20: note: in expansion of macro
‘KERN_SOH’
 #define KERN_DEBUG KERN_SOH "7" /* debug-level messages */
                    ^
include/linux/printk.h:289:12: note: in expansion of macro ‘KERN_DEBUG’
  no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
            ^
drivers/block/skd_main.c:2175:4: note: in expansion of macro ‘pr_debug’
    pr_debug("%s:%s:%d  spcl[%2d] %8ph\n",
    ^

--
Jens Axboe

Signature · 2 lines
With Best Regards,
Andy Shevchenko