On Fri, Oct 12, 2012 at 5:26 PM, Tilman Schmidt <til...@imap.cc> wrote:

>
> Good point. I'll have to think about that.
>
> At first sight, I can simply omit the cancel_work_sync() in
> the pre_reset() case. In the worst case, the uncancelled
> int_in_work() will call usb_clear_halt(), try to resubmit the
> already submitted URB, fail, and trigger another reset
> needlessly. Doesn't sound too bad?
>
> The alternative would be to introduce a new flag in the device
> state to skip the cancel_work_sync() call if int_in_work() is
> in the call to usb_reset_device().

The above is not good, running pre_reset() means that the
device is being reset and the device lock has been held,
so int_in_work() can't acquire the device lock and complete
the reset.

On easy solution is that skipping reset device in int_in_work()
if the device is being reset.


Thanks,
--
Ming Lei
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to