> On 19.10.2014, at 16.44, Laurence Oberman <loberman@xxxxxxxxxx> wrote: > > Hello Kai > > Thanks. > > Here is v3 > > This patch adds a debug_flag parameter that can be set on module load, and allows the DEBUG facility without a module recompile. > Note that now DEBUG 1 is the default with this patch. > > Usage: modprobe st debug_flag=1 > > Signed-off-by: Laurence Oberman <loberman@xxxxxxxxxx> Acked-by: Kai Mäkisara <kai.makisara@xxxxxxxxxxx> Thanks, Kai > > diff -Nur a/Documentation/scsi/st.txt b/Documentation/scsi/st.txt > --- a/Documentation/scsi/st.txt 2014-10-19 09:36:52.243863716 -0400 > +++ b/Documentation/scsi/st.txt 2014-10-19 09:43:19.222863447 -0400 > @@ -506,9 +506,11 @@ > > DEBUGGING HINTS > > -To enable debugging messages, edit st.c and #define DEBUG 1. As seen > -above, debugging can be switched off with an ioctl if debugging is > -compiled into the driver. The debugging output is not voluminous. > +Debugging code is now compiled in by default but debugging is turned off with > +the kernel module parameter debug_flag defaulting to 0. > +Debugging can still be switched on and off with an ioctl. > +To enable debug at module load time add debug_flag=1 to the module load > +options, the debugging output is not voluminous. > > If the tape seems to hang, I would be very interested to hear where > the driver is waiting. With the command 'ps -l' you can see the state > > diff -Nur a/drivers/scsi/st.c b/drivers/scsi/st.c > --- a/drivers/scsi/st.c 2014-10-19 09:35:45.673863756 -0400 > +++ b/drivers/scsi/st.c 2014-10-19 09:35:30.621863483 -0400 > @@ -56,7 +56,8 @@ > > /* The driver prints some debugging information on the console if DEBUG > is defined and non-zero. */ > -#define DEBUG 0 > +#define DEBUG 1 > +#define NO_DEBUG 0 > > #define ST_DEB_MSG KERN_NOTICE > #if DEBUG > @@ -80,6 +81,7 @@ > static int try_direct_io = TRY_DIRECT_IO; > static int try_rdio = 1; > static int try_wdio = 1; > +static int debug_flag = 0; > > static struct class st_sysfs_class; > static const struct attribute_group *st_dev_groups[]; > @@ -100,6 +102,9 @@ > MODULE_PARM_DESC(max_sg_segs, "Maximum number of scatter/gather segments to use (256)"); > module_param_named(try_direct_io, try_direct_io, int, 0); > MODULE_PARM_DESC(try_direct_io, "Try direct I/O between user buffer and tape drive (1)"); > +module_param_named(debug_flag, debug_flag, int, 0); > +MODULE_PARM_DESC(debug_flag, "Enable DEBUG, same as setting debugging=1"); > + > > /* Extra parameters for testing */ > module_param_named(try_rdio, try_rdio, int, 0); > @@ -124,6 +129,9 @@ > }, > { > "try_direct_io", &try_direct_io > + }, > + { > + "debug_flag", &debug_flag > } > }; > #endif > @@ -4309,6 +4317,10 @@ > printk(KERN_INFO "st: Version %s, fixed bufsize %d, s/g segs %d\n", > verstr, st_fixed_buffer_size, st_max_sg_segs); > > + debugging = (debug_flag > 0) ? debug_flag : NO_DEBUG; > + if (debugging) > + printk(KERN_INFO "st: Debugging enabled debug_flag = %d\n",debugging); > + > err = class_register(&st_sysfs_class); > if (err) { > pr_err("Unable register sysfs class for SCSI tapes\n"); -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html