Re: EHCI resume sysfs duplicates

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

 



On Wed, 30 Dec 2009, Borislav Petkov wrote:

> On Tue, Dec 29, 2009 at 11:13:40AM -0500, Alan Stern wrote:
> > This time, turn off the various self-test and debugging settings in the 
> > configuration, but turn on CONFIG_USB_DEBUG.
> 
> new config attached.

You don't have to attach your config.  Just get rid of all the 
unnecessary debugging output, like the "uevent" lines and the "Task ... 
is on cpu X" lines.  You might want to enable CONFIG_PRINTK_TIME, 
however, because it helps with identifying individual lines in the log.

> > The situation described in your bug report should not be possible, as 
> > you can see by reading create_intf_ep_devs() in 
> > drivers/usb/core/message.c.  The first time the device file is created, 
> > intf->ep_devs_created gets set to 1.  Thus the second time through, the 
> > function should return immediately.  You might want to add some 
> > debugging printk's of your own to that function to figure out what's 
> > going wrong.
> 
> debug patch:
> 
> 
> diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
> index 1b99484..6fd547b 100644
> --- a/drivers/usb/core/message.c
> +++ b/drivers/usb/core/message.c
> @@ -1060,6 +1060,9 @@ static int create_intf_ep_devs(struct usb_interface *intf)
>  	struct usb_host_interface *alt = intf->cur_altsetting;
>  	int i;
>  
> +	pr_err("%s: ->ep_devs_created: %d, ->unregistering: %d\n",
> +		__func__, intf->ep_devs_created, intf->unregistering);
> +
>  	if (intf->ep_devs_created || intf->unregistering)
>  		return 0;

It would have been a little better to use dev_err() instead of pr_err() 
so that we knew which interface the message referred to.  Also, you 
might want to add a similar message to remove_intf_ep_devs() just 
below, because that's the only place where intf->ep_devs_created gets 
set back to 0.

> however, both ->ep_devs_created and ->unregistering are 0 during/after
> resume. See attached dmesg.

But intf->ep_devs_created was 1 before the resume.  You need to figure 
out where it gets set back to 0.

Alan Stern

--
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