RE: periodic schedule enabled during usb_disconnect

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

 



On Fri, 12 Jun 2009, Julie Zhu wrote:

> > > Is this a bug?
> > 
> > Probably not.  The periodic schedule should be enabled as long as any
> > periodic URBs are queued.  The fact that they are addressed to a
> device
> > which has been unplugged doesn't matter -- usb_disconnect() will
> unlink
> > the remaining URBs for the unplugged device quickly enough.
> > 
> > Alan Stern
> > 
> 
> Well, it does happen, and printks show the path of periodic schedule
> disable/enable/disable.

Sure.  It happens, but it's not a bug.  The same thing would happen if 
you queued a bunch of interrupt URBs for a device and then unlinked the 
first one, without unplugging anything.

>  Can you point me to where qh->qtd_list is
> updated?

It is updated in qh_completions().  There are two widely separated 
regions in the source code:

	list_for_each_safe (entry, tmp, &qh->qtd_list) {
		struct ehci_qtd	*qtd;
		...
		qtd = list_entry (entry, struct ehci_qtd, qtd_list);

and then much later:

		/* remove qtd; it's recycled after possible urb completion */
		list_del (&qtd->qtd_list);

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