On Wed, 2013-10-09 at 19:45 +0200, Hans de Goede wrote:
> Hi,
>
> Thanks for the quick review!
>
> On 10/09/2013 07:00 PM, Oliver Neukum wrote:
> > On Wed, 2013-10-09 at 17:01 +0200, Hans de Goede wrote:
> >
> >> So I have come up with this patch instead, which adds the ability to
> >> suspend wakeups of usb_wait_anchor_empty_timeout() waiters to the
> >> usb_anchor
> >> functionality, and uses this in __usb_hcd_giveback_urb() to delay wake-ups
> >> until the completion handler has run.
> >
> > Hm. This may mean that we lose wakeups. If the driver reanchors (to the
> > same anchor) no wakeup will be issued, ever.
>
> Correct, and there never was a guarantee one would in the old case too,
> if the completion handler re-anchored before the waiting task redid the
> list_empty check it would resume waiting anyways.
That is true.
> So re-anchoring and using usb_wait_anchor_empty_timeout() where mutually
> exclusive before this patch already.
>
> One could argue the new behavior where the wakeup will never happen is
> actually
> better, because that way people will not accidentally start depending
> happening
> on the race happening in such a way that the wakeup does happen.
If you find it usefuller, that counts.
Regards
Oliver
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html