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