Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+18 −20
Original line number Original line Diff line number Diff line
@@ -56,14 +56,12 @@ __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)
@@ -75,11 +73,11 @@ cio_debug_init (void)
		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:
@@ -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,
+11 −11
Original line number Original line Diff line number Diff line
@@ -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)				\
			printk(printk_level "cio: " msg);	\
		CIO_MSG_EVENT(event_level, msg);		\
		CIO_MSG_EVENT(event_level, msg);		\
})
	} while (0)


#endif
#endif
+4 −4
Original line number Original line Diff line number Diff line
@@ -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) {