[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: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
25b7bb5838
commit
bc698bcf88
@ -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)
|
|||||||
*/
|
*/
|
||||||
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)
|
|||||||
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;
|
|||||||
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)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#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)
|
|||||||
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)
|
|||||||
}
|
}
|
||||||
/* 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)
|
|||||||
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)
|
|||||||
|
|
||||||
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) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user