Re: [RFC 1/2] uhci: change dependency for debug parameter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2013-11-14 at 05:31 +0900, Greg KH wrote:
> On Wed, Nov 13, 2013 at 06:13:06PM +0100, oliver@xxxxxxxxxx wrote:
> > From: Oliver Neukum <oneukum@xxxxxxx>
> > 
> > To allow a full switch to dynamic debugging make the
> > debug parameter conditional on defined(DEBUF) || defined(DYNAMIC_DEBUG)
> > 
> > Signed-off-by: Oliver Neukum <oneukum@xxxxxxx>
> > ---
> >  drivers/usb/host/uhci-hcd.c | 44 +++++++++++++++++++++++---------------------
> >  1 file changed, 23 insertions(+), 21 deletions(-)
> > 
> > diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
> > index 4a86b63..c53058d 100644
> > --- a/drivers/usb/host/uhci-hcd.c
> > +++ b/drivers/usb/host/uhci-hcd.c
> > @@ -69,19 +69,14 @@ MODULE_PARM_DESC(ignore_oc, "ignore hardware overcurrent indications");
> >   *            show all queues in /sys/kernel/debug/uhci/[pci_addr]
> >   * debug = 3, show all TDs in URBs when dumping
> >   */
> > -#ifdef DEBUG
> > -#define DEBUG_CONFIGURED	1
> > +#if defined(DEBUG) || defined(DYNAMIC_DEBUG)
> 
> My goal would be to see DEBUG go away entirely, so why not just remove
> it here as well and only depend on DYNAMIC_DEBUG?

Well, shouldn't that wait for the change of the Makefile?

> >  static int debug = 1;
> >  module_param(debug, int, S_IRUGO | S_IWUSR);
> >  MODULE_PARM_DESC(debug, "Debug level");
> 
> You can leave the module parameter in, but just set the default to 0,
> and we should be fine.

OK

> Or just remove this entirely, as I doubt it's really needed anymore.
> 
> > -#else
> > -#define DEBUG_CONFIGURED	0
> > -#define debug			0
> > -#endif
> > -
> >  static char *errbuf;
> >  #define ERRBUF_LEN    (32 * 1024)
> > +#endif
> >  
> >  static struct kmem_cache *uhci_up_cachep;	/* urb_priv */
> >  
> > @@ -462,12 +457,14 @@ static irqreturn_t uhci_irq(struct usb_hcd *hcd)
> >  			if (uhci->rh_state >= UHCI_RH_RUNNING) {
> >  				dev_err(uhci_dev(uhci),
> >  					"host controller halted, very bad!\n");
> > +#if defined(DEBUG) || defined(DYNAMIC_DEBUG)
> >  				if (debug > 1 && errbuf) {
> >  					/* Print the schedule for debugging */
> >  					uhci_sprint_schedule(uhci, errbuf,
> >  						ERRBUF_LEN - EXTRA_SPACE);
> >  					lprintk(errbuf);
> >  				}
> > +#endif
> >  				uhci_hc_died(uhci);
> >  				usb_hc_died(hcd);
> >  
> > @@ -516,13 +513,12 @@ static void release_uhci(struct uhci_hcd *uhci)
> >  {
> >  	int i;
> >  
> > -	if (DEBUG_CONFIGURED) {
> > -		spin_lock_irq(&uhci->lock);
> > -		uhci->is_initialized = 0;
> > -		spin_unlock_irq(&uhci->lock);
> >  
> > -		debugfs_remove(uhci->dentry);
> > -	}
> > +	spin_lock_irq(&uhci->lock);
> > +	uhci->is_initialized = 0;
> > +	spin_unlock_irq(&uhci->lock);
> 
> Funny that we only use this flag today if debugging is enabled, I never
> noticed that.
> 
> > +
> > +	debugfs_remove(uhci->dentry);
> >  
> >  	for (i = 0; i < UHCI_NUM_SKELQH; i++)
> >  		uhci_free_qh(uhci, uhci->skelqh[i]);
> > @@ -823,8 +819,10 @@ static int uhci_count_ports(struct usb_hcd *hcd)
> >  		if (!(portstatus & 0x0080) || portstatus == 0xffff)
> >  			break;
> >  	}
> > +#if defined(DEBUG) || defined(DYNAMIC_DEBUG)
> >  	if (debug)
> >  		dev_info(uhci_dev(uhci), "detected %d ports\n", port);
> 
> Just make this a dev_dbg() call which will handle all of the needed
> permission checking of DYNAMIC_DEBUG?

OK

> > +#endif
> >  
> >  	/* Anything greater than 7 is weird so we'll ignore it. */
> >  	if (port > UHCI_RH_MAXCHILD) {
> > @@ -868,14 +866,14 @@ static int __init uhci_hcd_init(void)
> >  			ignore_oc ? ", overcurrent ignored" : "");
> >  	set_bit(USB_UHCI_LOADED, &usb_hcds_loaded);
> >  
> > -	if (DEBUG_CONFIGURED) {
> > -		errbuf = kmalloc(ERRBUF_LEN, GFP_KERNEL);
> > -		if (!errbuf)
> > -			goto errbuf_failed;
> > -		uhci_debugfs_root = debugfs_create_dir("uhci", usb_debug_root);
> > -		if (!uhci_debugfs_root)
> > -			goto debug_failed;
> > -	}
> > +#if defined(DEBUG) || defined(DYNAMIC_DEBUG)
> > +	errbuf = kmalloc(ERRBUF_LEN, GFP_KERNEL);
> > +	if (!errbuf)
> > +		goto errbuf_failed;
> > +#endif
> > +	uhci_debugfs_root = debugfs_create_dir("uhci", usb_debug_root);
> > +	if (!uhci_debugfs_root)
> > +		goto debug_failed;
> 
> You should never need to check the return values of debugfs calls,
> unless you _really_ want to.  If you do, then you need to handle the
> -ENODEV case for when it is just compiled away, you don't want to abort
> the driver load on that case.

OK

	Regards
		Oliver


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux