Commit 0b3644b4 authored by Jan Höppner's avatar Jan Höppner Committed by Jens Axboe

s390/dasd: Use dev_err() over printk()

To reduce the information required for the string generation in the
sense dump functions, use the more concise dev_err() variant over
printk(KERN_ERR, ...) to improve code readability.

The dev_err() function provides the component and device name for free
and the separate dev_name() calls as well as the PRINTK_HEADER can be
dropped.

Dropping PRINTK_HEADER removes the "dasd(eckd):" for all lines. Only the
first line of a dev_err() call is prefixed with the component and device
(e.g. "dasd-eckd 0.0.95d0:").

The format specifier for printed pointers is also changed to unhashed
(%px) as this can help with debugging and servicing.
Signed-off-by: default avatarJan Höppner <hoeppner@linux.ibm.com>
Reviewed-by: default avatarStefan Haberland <sth@linux.ibm.com>
Signed-off-by: default avatarStefan Haberland <sth@linux.ibm.com>
Link: https://lore.kernel.org/r/20240208164248.540985-7-sth@linux.ibm.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 32312cf2
This diff is collapsed.
...@@ -25,11 +25,6 @@ ...@@ -25,11 +25,6 @@
#include "dasd_int.h" #include "dasd_int.h"
#include "dasd_fba.h" #include "dasd_fba.h"
#ifdef PRINTK_HEADER
#undef PRINTK_HEADER
#endif /* PRINTK_HEADER */
#define PRINTK_HEADER "dasd(fba):"
#define FBA_DEFAULT_RETRIES 32 #define FBA_DEFAULT_RETRIES 32
#define DASD_FBA_CCW_WRITE 0x41 #define DASD_FBA_CCW_WRITE 0x41
...@@ -660,30 +655,27 @@ static void ...@@ -660,30 +655,27 @@ static void
dasd_fba_dump_sense(struct dasd_device *device, struct dasd_ccw_req * req, dasd_fba_dump_sense(struct dasd_device *device, struct dasd_ccw_req * req,
struct irb *irb) struct irb *irb)
{ {
char *page;
struct ccw1 *act, *end, *last; struct ccw1 *act, *end, *last;
int len, sl, sct, count; int len, sl, sct, count;
struct device *dev;
char *page;
dev = &device->cdev->dev;
page = (char *) get_zeroed_page(GFP_ATOMIC); page = (char *) get_zeroed_page(GFP_ATOMIC);
if (page == NULL) { if (page == NULL) {
DBF_DEV_EVENT(DBF_WARNING, device, "%s", DBF_DEV_EVENT(DBF_WARNING, device, "%s",
"No memory to dump sense data"); "No memory to dump sense data");
return; return;
} }
len = sprintf(page, PRINTK_HEADER len = sprintf(page, "I/O status report:\n");
" I/O status report for device %s:\n", len += sprintf(page + len, "in req: %px CS: 0x%02X DS: 0x%02X\n",
dev_name(&device->cdev->dev)); req, irb->scsw.cmd.cstat, irb->scsw.cmd.dstat);
len += sprintf(page + len, PRINTK_HEADER len += sprintf(page + len, "Failing CCW: %px\n",
" in req: %p CS: 0x%02X DS: 0x%02X\n", req,
irb->scsw.cmd.cstat, irb->scsw.cmd.dstat);
len += sprintf(page + len, PRINTK_HEADER
" device %s: Failing CCW: %p\n",
dev_name(&device->cdev->dev),
(void *) (addr_t) irb->scsw.cmd.cpa); (void *) (addr_t) irb->scsw.cmd.cpa);
if (irb->esw.esw0.erw.cons) { if (irb->esw.esw0.erw.cons) {
for (sl = 0; sl < 4; sl++) { for (sl = 0; sl < 4; sl++) {
len += sprintf(page + len, PRINTK_HEADER len += sprintf(page + len, "Sense(hex) %2d-%2d:",
" Sense(hex) %2d-%2d:",
(8 * sl), ((8 * sl) + 7)); (8 * sl), ((8 * sl) + 7));
for (sct = 0; sct < 8; sct++) { for (sct = 0; sct < 8; sct++) {
...@@ -693,20 +685,18 @@ dasd_fba_dump_sense(struct dasd_device *device, struct dasd_ccw_req * req, ...@@ -693,20 +685,18 @@ dasd_fba_dump_sense(struct dasd_device *device, struct dasd_ccw_req * req,
len += sprintf(page + len, "\n"); len += sprintf(page + len, "\n");
} }
} else { } else {
len += sprintf(page + len, PRINTK_HEADER len += sprintf(page + len, "SORRY - NO VALID SENSE AVAILABLE\n");
" SORRY - NO VALID SENSE AVAILABLE\n");
} }
printk(KERN_ERR "%s", page); dev_err(dev, "%s", page);
/* dump the Channel Program */ /* dump the Channel Program */
/* print first CCWs (maximum 8) */ /* print first CCWs (maximum 8) */
act = req->cpaddr; act = req->cpaddr;
for (last = act; last->flags & (CCW_FLAG_CC | CCW_FLAG_DC); last++); for (last = act; last->flags & (CCW_FLAG_CC | CCW_FLAG_DC); last++);
end = min(act + 8, last); end = min(act + 8, last);
len = sprintf(page, PRINTK_HEADER " Related CP in req: %p\n", req); len = sprintf(page, "Related CP in req: %px\n", req);
while (act <= end) { while (act <= end) {
len += sprintf(page + len, PRINTK_HEADER len += sprintf(page + len, "CCW %px: %08X %08X DAT:",
" CCW %p: %08X %08X DAT:",
act, ((int *) act)[0], ((int *) act)[1]); act, ((int *) act)[0], ((int *) act)[1]);
for (count = 0; count < 32 && count < act->count; for (count = 0; count < 32 && count < act->count;
count += sizeof(int)) count += sizeof(int))
...@@ -716,19 +706,17 @@ dasd_fba_dump_sense(struct dasd_device *device, struct dasd_ccw_req * req, ...@@ -716,19 +706,17 @@ dasd_fba_dump_sense(struct dasd_device *device, struct dasd_ccw_req * req,
len += sprintf(page + len, "\n"); len += sprintf(page + len, "\n");
act++; act++;
} }
printk(KERN_ERR "%s", page); dev_err(dev, "%s", page);
/* print failing CCW area */ /* print failing CCW area */
len = 0; len = 0;
if (act < ((struct ccw1 *)(addr_t) irb->scsw.cmd.cpa) - 2) { if (act < ((struct ccw1 *)(addr_t) irb->scsw.cmd.cpa) - 2) {
act = ((struct ccw1 *)(addr_t) irb->scsw.cmd.cpa) - 2; act = ((struct ccw1 *)(addr_t) irb->scsw.cmd.cpa) - 2;
len += sprintf(page + len, PRINTK_HEADER "......\n"); len += sprintf(page + len, "......\n");
} }
end = min((struct ccw1 *)(addr_t) irb->scsw.cmd.cpa + 2, last); end = min((struct ccw1 *)(addr_t) irb->scsw.cmd.cpa + 2, last);
while (act <= end) { while (act <= end) {
len += sprintf(page + len, PRINTK_HEADER len += sprintf(page + len, "CCW %px: %08X %08X DAT:",
" CCW %p: %08X %08X DAT:",
act, ((int *) act)[0], ((int *) act)[1]); act, ((int *) act)[0], ((int *) act)[1]);
for (count = 0; count < 32 && count < act->count; for (count = 0; count < 32 && count < act->count;
count += sizeof(int)) count += sizeof(int))
...@@ -742,11 +730,10 @@ dasd_fba_dump_sense(struct dasd_device *device, struct dasd_ccw_req * req, ...@@ -742,11 +730,10 @@ dasd_fba_dump_sense(struct dasd_device *device, struct dasd_ccw_req * req,
/* print last CCWs */ /* print last CCWs */
if (act < last - 2) { if (act < last - 2) {
act = last - 2; act = last - 2;
len += sprintf(page + len, PRINTK_HEADER "......\n"); len += sprintf(page + len, "......\n");
} }
while (act <= last) { while (act <= last) {
len += sprintf(page + len, PRINTK_HEADER len += sprintf(page + len, "CCW %px: %08X %08X DAT:",
" CCW %p: %08X %08X DAT:",
act, ((int *) act)[0], ((int *) act)[1]); act, ((int *) act)[0], ((int *) act)[1]);
for (count = 0; count < 32 && count < act->count; for (count = 0; count < 32 && count < act->count;
count += sizeof(int)) count += sizeof(int))
...@@ -757,7 +744,7 @@ dasd_fba_dump_sense(struct dasd_device *device, struct dasd_ccw_req * req, ...@@ -757,7 +744,7 @@ dasd_fba_dump_sense(struct dasd_device *device, struct dasd_ccw_req * req,
act++; act++;
} }
if (len > 0) if (len > 0)
printk(KERN_ERR "%s", page); dev_err(dev, "%s", page);
free_page((unsigned long) page); free_page((unsigned long) page);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment