Re: [RFC/PATCH v2] usb: host: xhci: issue 'Reset Endpoint' for !CONTROL EPs from finish_td()

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

 



Hi,

(your mailing is un-wrapping emails, I always end up with pretty long
lines and have to rewrap them)

On Thu, Nov 13, 2014 at 07:58:28PM +0200, Mathias Nyman wrote:
> > The algorithm described in the DVB tuner bug is clearly wrong, since
> > it doesn't move the dequeue pointer until usb_clear_halt() is
> > called, which is far too late.  The right approach is to fix up the
> > dequeue pointer before giving back the URB (so there's no need to
> > save a "stopped TD" value).  Otherwise there will be TDs in the
> > endpoint ring containing stale DMA pointers to buffers that have
> > already been unmapped.
> 
> Thats right, I cleaned up the patch and removed resetting the endpoint
> from the .endpoint_reset() callback which was called as a result of
> usb_clear_halt(). Now we queue a reset endpoint and set dequeue
> pointer before giving back the URB.
> 
> I still set a "stopped td" value, but could as well just pass it as
> function parameter.  Actually I'll do that in later cleanup patch.
> 
> Latest version of the patch is now in my tree in a reset-rework-v2
> branch, with fixes comments and removed The brach includes the other
> dorbell ringing patch as well.  both are on top of 3.18-rc4.
> 
> I still need to test it before sending it further, the tree is here:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/mnyman/xhci.git  reset-rework-v2

I'll test this one.

> latest reset stall patch:
> https://git.kernel.org/cgit/linux/kernel/git/mnyman/xhci.git/commit/?h=reset-rework-v2&id=263ae54010ffadec17741f7215de64ad40a4bf5e
>
> fix doorbell ring patch (already tested by Felipe):
> https://git.kernel.org/cgit/linux/kernel/git/mnyman/xhci.git/commit/?h=reset-rework-v2&id=c96885c658294fef593f2109d194fa07d140c384

Looks like both patches need to have a Fixes and Cc: stable added to
them.

Now let me build and run this branch.

-- 
balbi

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]