aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorbrking@us.ibm.com <brking@us.ibm.com>2005-11-01 18:01:34 -0500
committerJames Bottomley <jejb@mulgrave.(none)>2005-11-06 14:04:41 -0500
commitd3c74871bdcb9cb09dca22994dfee8500515f28f (patch)
tree431d8605fd41842e77c5e314df9f29ca8881f036 /drivers
parent12baa4202d74d799f4f8a4bd0455b485e4f8e876 (diff)
[SCSI] ipr: Runtime debugging options
Make some compile time debugging options runtime module options. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/ipr.c3
-rw-r--r--drivers/scsi/ipr.h30
2 files changed, 6 insertions, 27 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index 72b588d65562..1d440f2763ca 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -92,6 +92,7 @@ static int ipr_testmode = 0;
92static unsigned int ipr_fastfail = 0; 92static unsigned int ipr_fastfail = 0;
93static unsigned int ipr_transop_timeout = IPR_OPERATIONAL_TIMEOUT; 93static unsigned int ipr_transop_timeout = IPR_OPERATIONAL_TIMEOUT;
94static unsigned int ipr_enable_cache = 1; 94static unsigned int ipr_enable_cache = 1;
95static unsigned int ipr_debug = 0;
95static DEFINE_SPINLOCK(ipr_driver_lock); 96static DEFINE_SPINLOCK(ipr_driver_lock);
96 97
97/* This table describes the differences between DMA controller chips */ 98/* This table describes the differences between DMA controller chips */
@@ -153,6 +154,8 @@ module_param_named(transop_timeout, ipr_transop_timeout, int, 0);
153MODULE_PARM_DESC(transop_timeout, "Time in seconds to wait for adapter to come operational (default: 300)"); 154MODULE_PARM_DESC(transop_timeout, "Time in seconds to wait for adapter to come operational (default: 300)");
154module_param_named(enable_cache, ipr_enable_cache, int, 0); 155module_param_named(enable_cache, ipr_enable_cache, int, 0);
155MODULE_PARM_DESC(enable_cache, "Enable adapter's non-volatile write cache (default: 1)"); 156MODULE_PARM_DESC(enable_cache, "Enable adapter's non-volatile write cache (default: 1)");
157module_param_named(debug, ipr_debug, int, 0);
158MODULE_PARM_DESC(debug, "Enable device driver debugging logging. Set to 1 to enable. (default: 0)");
156MODULE_LICENSE("GPL"); 159MODULE_LICENSE("GPL");
157MODULE_VERSION(IPR_DRIVER_VERSION); 160MODULE_VERSION(IPR_DRIVER_VERSION);
158 161
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h
index 1a29eb865b0b..414aa07e20f9 100644
--- a/drivers/scsi/ipr.h
+++ b/drivers/scsi/ipr.h
@@ -40,21 +40,6 @@
40#define IPR_DRIVER_DATE "(May 2, 2005)" 40#define IPR_DRIVER_DATE "(May 2, 2005)"
41 41
42/* 42/*
43 * IPR_DBG_TRACE: Setting this to 1 will turn on some general function tracing
44 * resulting in a bunch of extra debugging printks to the console
45 *
46 * IPR_DEBUG: Setting this to 1 will turn on some error path tracing.
47 * Enables the ipr_trace macro.
48 */
49#ifdef IPR_DEBUG_ALL
50#define IPR_DEBUG 1
51#define IPR_DBG_TRACE 1
52#else
53#define IPR_DEBUG 0
54#define IPR_DBG_TRACE 0
55#endif
56
57/*
58 * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding 43 * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding
59 * ops per device for devices not running tagged command queuing. 44 * ops per device for devices not running tagged command queuing.
60 * This can be adjusted at runtime through sysfs device attributes. 45 * This can be adjusted at runtime through sysfs device attributes.
@@ -1090,11 +1075,7 @@ struct ipr_ucode_image_header {
1090/* 1075/*
1091 * Macros 1076 * Macros
1092 */ 1077 */
1093#if IPR_DEBUG 1078#define IPR_DBG_CMD(CMD) if (ipr_debug) { CMD; }
1094#define IPR_DBG_CMD(CMD) do { CMD; } while (0)
1095#else
1096#define IPR_DBG_CMD(CMD)
1097#endif
1098 1079
1099#ifdef CONFIG_SCSI_IPR_TRACE 1080#ifdef CONFIG_SCSI_IPR_TRACE
1100#define ipr_create_trace_file(kobj, attr) sysfs_create_bin_file(kobj, attr) 1081#define ipr_create_trace_file(kobj, attr) sysfs_create_bin_file(kobj, attr)
@@ -1156,13 +1137,8 @@ struct ipr_ucode_image_header {
1156#define ipr_trace ipr_dbg("%s: %s: Line: %d\n",\ 1137#define ipr_trace ipr_dbg("%s: %s: Line: %d\n",\
1157 __FILE__, __FUNCTION__, __LINE__) 1138 __FILE__, __FUNCTION__, __LINE__)
1158 1139
1159#if IPR_DBG_TRACE 1140#define ENTER IPR_DBG_CMD(printk(KERN_INFO IPR_NAME": Entering %s\n", __FUNCTION__))
1160#define ENTER printk(KERN_INFO IPR_NAME": Entering %s\n", __FUNCTION__) 1141#define LEAVE IPR_DBG_CMD(printk(KERN_INFO IPR_NAME": Leaving %s\n", __FUNCTION__))
1161#define LEAVE printk(KERN_INFO IPR_NAME": Leaving %s\n", __FUNCTION__)
1162#else
1163#define ENTER
1164#define LEAVE
1165#endif
1166 1142
1167#define ipr_err_separator \ 1143#define ipr_err_separator \
1168ipr_err("----------------------------------------------------------\n") 1144ipr_err("----------------------------------------------------------\n")