On Thu, 21 Jul 2011, Arvid Brodin wrote: > >> kill_transfer() reclaims the transfer slot from the hardware, which means we > >> will never get an interrupt for this packet; isp1760_irq() will not get > >> executed. (More details about this in earlier discussions with Sebastian > >> Siewior, may 17 I think.) > > > > I see. Then maybe usb_hub_clear_tt_buffer() belongs in > > kill_transfer()? But if this is the only place that calls > > kill_transfer() then it's okay to put it here instead. > > I don't think it is sufficient to call usb_hub_clear_tt_buffer() in > kill_transfer(). I believe split transfers consists of (at least?) two packets: > start split (SS) and complete split (CS). kill_transfer() is called if one of > these transfers are in progress during an unlink. However, the unlink may also > happen when SS has completed and CS has not yet started, in which case > kill_transfer() will not be called, but my guess is the TT buffer might need > clearing then as well? Yes indeed. 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