On Wed, Jun 23, 2010 at 04:21:03PM -0700, Sarah Sharp wrote: > When a configured device is reset, the control endpoint's ring is reused. > If control transfers to the device were issued before the device is reset, > the dequeue pointer will be somewhere in the middle of the ring. If the > device is then issued an address with the set address command, the xHCI > driver must provide a valid input context for control endpoint zero. > > The original code would give the hardware the original input context, > which had a dequeue pointer set to the top of the ring. This would cause > the host to re-execute any control transfers until it reached the ring's > enqueue pointer. When issuing a set address command for a device that has > just been configured and then reset, use the control endpoint's enqueue > pointer as the hardware's dequeue pointer. > > Assumption: All control transfers will be completed or cancelled before > the set address command is issued to the device. If there are any > outstanding control transfers, this code will not work. > > Signed-off-by: Sarah Sharp <sarah.a.sharp@xxxxxxxxxxxxxxx> > --- > > Fajun, > > Would you try this patch? It should get rid of the warnings about > "ERROR Transfer event TRB DMA ptr not part of current TD". I don't > think it will fix your oops though. The oops is in the usb_storage > driver, so you should retry with this patch and then email them. Is this a patch you wish me to queue up as well? thanks, greg k-h -- 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