Re: [PATCH] bas_gigaset: fix pre_reset handling
David Miller <[email protected]> Fri, 26 Oct 2012 02:20:58 -0400 (EDT)
| Newsgroups | gmane.linux.kernel,gmane.linux.usb.general,gmane.linux.isdn.i4l.devel,gmane.linux.network |
|---|---|
| Message-ID | <[email protected]> |
From: Tilman Schmidt <[email protected]> Date: Wed, 24 Oct 2012 20:44:32 +0200 > The delayed work function int_in_work() may call usb_reset_device() > and thus, indirectly, the driver's pre_reset method. Trying to > cancel the work synchronously in that situation would deadlock. > Fix by avoiding cancel_work_sync() in the pre_reset method. > > If the reset was NOT initiated by int_in_work() this might cause > int_in_work() to run after the post_reset method, with urb_int_in > already resubmitted, so handle that case gracefully. > > Signed-off-by: Tilman Schmidt <[email protected]> Applied, thanks.