diff options
author | Tilman Schmidt <tilman@imap.cc> | 2012-10-24 08:44:32 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-10-26 02:20:36 -0400 |
commit | c6fdd8e5d0c65bb8821dc6da26ee1a2ddd58b3cc (patch) | |
tree | 3a7b4adf2480e45fdc07702d2708291a496a7c9b /lib/dynamic_debug.c | |
parent | 910a578f7e9400a78a3b13aba0b4d2df16a2cb05 (diff) |
bas_gigaset: fix pre_reset handling
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 <tilman@imap.cc>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib/dynamic_debug.c')
0 files changed, 0 insertions, 0 deletions