Commit bc698bcf authored by Cornelia Huck's avatar Cornelia Huck Committed by Martin Schwidefsky

[S390] cio: Cleanup debug feature usage.

Cleanup cio_debug.h.
Also make CIO_DEBUG add the "cio:" prefix to the printk string
so that it isn't needed for the debug feature.
Fix outdated comments for cio_debug_init() and clean it up.
Enlarge cio_crw to the same size as cio_msg so we may actually
find some relevant information there.
Signed-off-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 25b7bb58
...@@ -56,39 +56,37 @@ __setup ("cio_msg=", cio_setup); ...@@ -56,39 +56,37 @@ __setup ("cio_msg=", cio_setup);
/* /*
* Function: cio_debug_init * Function: cio_debug_init
* Initializes three debug logs (under /proc/s390dbf) for common I/O: * Initializes three debug logs for common I/O:
* - cio_msg logs the messages which are printk'ed when CONFIG_DEBUG_IO is on * - cio_msg logs generic cio messages
* - cio_trace logs the calling of different functions * - cio_trace logs the calling of different functions
* - cio_crw logs the messages which are printk'ed when CONFIG_DEBUG_CRW is on * - cio_crw logs machine check related cio messages
* debug levels depend on CONFIG_DEBUG_IO resp. CONFIG_DEBUG_CRW
*/ */
static int __init static int __init cio_debug_init(void)
cio_debug_init (void)
{ {
cio_debug_msg_id = debug_register ("cio_msg", 16, 4, 16*sizeof (long)); cio_debug_msg_id = debug_register("cio_msg", 16, 4, 16 * sizeof(long));
if (!cio_debug_msg_id) if (!cio_debug_msg_id)
goto out_unregister; goto out_unregister;
debug_register_view (cio_debug_msg_id, &debug_sprintf_view); debug_register_view(cio_debug_msg_id, &debug_sprintf_view);
debug_set_level (cio_debug_msg_id, 2); debug_set_level(cio_debug_msg_id, 2);
cio_debug_trace_id = debug_register ("cio_trace", 16, 4, 16); cio_debug_trace_id = debug_register("cio_trace", 16, 4, 16);
if (!cio_debug_trace_id) if (!cio_debug_trace_id)
goto out_unregister; goto out_unregister;
debug_register_view (cio_debug_trace_id, &debug_hex_ascii_view); debug_register_view(cio_debug_trace_id, &debug_hex_ascii_view);
debug_set_level (cio_debug_trace_id, 2); debug_set_level(cio_debug_trace_id, 2);
cio_debug_crw_id = debug_register ("cio_crw", 4, 4, 16*sizeof (long)); cio_debug_crw_id = debug_register("cio_crw", 16, 4, 16 * sizeof(long));
if (!cio_debug_crw_id) if (!cio_debug_crw_id)
goto out_unregister; goto out_unregister;
debug_register_view (cio_debug_crw_id, &debug_sprintf_view); debug_register_view(cio_debug_crw_id, &debug_sprintf_view);
debug_set_level (cio_debug_crw_id, 2); debug_set_level(cio_debug_crw_id, 4);
return 0; return 0;
out_unregister: out_unregister:
if (cio_debug_msg_id) if (cio_debug_msg_id)
debug_unregister (cio_debug_msg_id); debug_unregister(cio_debug_msg_id);
if (cio_debug_trace_id) if (cio_debug_trace_id)
debug_unregister (cio_debug_trace_id); debug_unregister(cio_debug_trace_id);
if (cio_debug_crw_id) if (cio_debug_crw_id)
debug_unregister (cio_debug_crw_id); debug_unregister(cio_debug_crw_id);
printk(KERN_WARNING"cio: could not initialize debugging\n"); printk(KERN_WARNING"cio: could not initialize debugging\n");
return -1; return -1;
} }
...@@ -567,7 +565,7 @@ cio_validate_subchannel (struct subchannel *sch, struct subchannel_id schid) ...@@ -567,7 +565,7 @@ cio_validate_subchannel (struct subchannel *sch, struct subchannel_id schid)
*/ */
if (sch->st != 0) { if (sch->st != 0) {
CIO_DEBUG(KERN_INFO, 0, CIO_DEBUG(KERN_INFO, 0,
"cio: Subchannel 0.%x.%04x reports " "Subchannel 0.%x.%04x reports "
"non-I/O subchannel type %04X\n", "non-I/O subchannel type %04X\n",
sch->schid.ssid, sch->schid.sch_no, sch->st); sch->schid.ssid, sch->schid.sch_no, sch->st);
/* We stop here for non-io subchannels. */ /* We stop here for non-io subchannels. */
...@@ -600,7 +598,7 @@ cio_validate_subchannel (struct subchannel *sch, struct subchannel_id schid) ...@@ -600,7 +598,7 @@ cio_validate_subchannel (struct subchannel *sch, struct subchannel_id schid)
sch->lpm = sch->schib.pmcw.pam & sch->opm; sch->lpm = sch->schib.pmcw.pam & sch->opm;
CIO_DEBUG(KERN_INFO, 0, CIO_DEBUG(KERN_INFO, 0,
"cio: Detected device %04x on subchannel 0.%x.%04X" "Detected device %04x on subchannel 0.%x.%04X"
" - PIM = %02X, PAM = %02X, POM = %02X\n", " - PIM = %02X, PAM = %02X, POM = %02X\n",
sch->schib.pmcw.dev, sch->schid.ssid, sch->schib.pmcw.dev, sch->schid.ssid,
sch->schid.sch_no, sch->schib.pmcw.pim, sch->schid.sch_no, sch->schib.pmcw.pim,
......
...@@ -20,8 +20,7 @@ extern debug_info_t *cio_debug_crw_id; ...@@ -20,8 +20,7 @@ extern debug_info_t *cio_debug_crw_id;
debug_sprintf_event(cio_debug_crw_id, imp , ##args); \ debug_sprintf_event(cio_debug_crw_id, imp , ##args); \
} while (0) } while (0)
static inline void static inline void CIO_HEX_EVENT(int level, void *data, int length)
CIO_HEX_EVENT(int level, void *data, int length)
{ {
if (unlikely(!cio_debug_trace_id)) if (unlikely(!cio_debug_trace_id))
return; return;
...@@ -32,9 +31,10 @@ CIO_HEX_EVENT(int level, void *data, int length) ...@@ -32,9 +31,10 @@ CIO_HEX_EVENT(int level, void *data, int length)
} }
} }
#define CIO_DEBUG(printk_level,event_level,msg...) ({ \ #define CIO_DEBUG(printk_level, event_level, msg...) do { \
if (cio_show_msg) printk(printk_level msg); \ if (cio_show_msg) \
CIO_MSG_EVENT (event_level, msg); \ printk(printk_level "cio: " msg); \
}) CIO_MSG_EVENT(event_level, msg); \
} while (0)
#endif #endif
...@@ -318,7 +318,7 @@ ccw_device_recog_done(struct ccw_device *cdev, int state) ...@@ -318,7 +318,7 @@ ccw_device_recog_done(struct ccw_device *cdev, int state)
switch (state) { switch (state) {
case DEV_STATE_NOT_OPER: case DEV_STATE_NOT_OPER:
CIO_DEBUG(KERN_WARNING, 2, CIO_DEBUG(KERN_WARNING, 2,
"cio: SenseID : unknown device %04x on subchannel " "SenseID : unknown device %04x on subchannel "
"0.%x.%04x\n", cdev->private->dev_id.devno, "0.%x.%04x\n", cdev->private->dev_id.devno,
sch->schid.ssid, sch->schid.sch_no); sch->schid.ssid, sch->schid.sch_no);
break; break;
...@@ -344,7 +344,7 @@ ccw_device_recog_done(struct ccw_device *cdev, int state) ...@@ -344,7 +344,7 @@ ccw_device_recog_done(struct ccw_device *cdev, int state)
} }
/* Issue device info message. */ /* Issue device info message. */
CIO_DEBUG(KERN_INFO, 2, CIO_DEBUG(KERN_INFO, 2,
"cio: SenseID : device 0.%x.%04x reports: " "SenseID : device 0.%x.%04x reports: "
"CU Type/Mod = %04X/%02X, Dev Type/Mod = " "CU Type/Mod = %04X/%02X, Dev Type/Mod = "
"%04X/%02X\n", "%04X/%02X\n",
cdev->private->dev_id.ssid, cdev->private->dev_id.ssid,
...@@ -354,7 +354,7 @@ ccw_device_recog_done(struct ccw_device *cdev, int state) ...@@ -354,7 +354,7 @@ ccw_device_recog_done(struct ccw_device *cdev, int state)
break; break;
case DEV_STATE_BOXED: case DEV_STATE_BOXED:
CIO_DEBUG(KERN_WARNING, 2, CIO_DEBUG(KERN_WARNING, 2,
"cio: SenseID : boxed device %04x on subchannel " "SenseID : boxed device %04x on subchannel "
"0.%x.%04x\n", cdev->private->dev_id.devno, "0.%x.%04x\n", cdev->private->dev_id.devno,
sch->schid.ssid, sch->schid.sch_no); sch->schid.ssid, sch->schid.sch_no);
break; break;
...@@ -439,7 +439,7 @@ ccw_device_done(struct ccw_device *cdev, int state) ...@@ -439,7 +439,7 @@ ccw_device_done(struct ccw_device *cdev, int state)
if (state == DEV_STATE_BOXED) if (state == DEV_STATE_BOXED)
CIO_DEBUG(KERN_WARNING, 2, CIO_DEBUG(KERN_WARNING, 2,
"cio: Boxed device %04x on subchannel %04x\n", "Boxed device %04x on subchannel %04x\n",
cdev->private->dev_id.devno, sch->schid.sch_no); cdev->private->dev_id.devno, sch->schid.sch_no);
if (cdev->private->flags.donotify) { if (cdev->private->flags.donotify) {
......
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