linux/drivers/isdn/gigaset
Tilman Schmidt c6fdd8e5d0 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>
2012-10-26 02:20:36 -04:00
..
Kconfig isdn/gigaset: remove EXPERIMENTAL tag from GIGASET_CAPI 2010-07-07 16:57:56 -07:00
Makefile gigaset: add Kernel CAPI interface (v3) 2009-10-06 22:43:53 -07:00
asyncdata.c isdn: whitespace coding style cleanup 2012-02-21 09:04:01 -08:00
bas-gigaset.c bas_gigaset: fix pre_reset handling 2012-10-26 02:20:36 -04:00
capi.c gigaset: silence GCC warning for unused 'format_ie' 2012-07-16 23:23:53 -07:00
common.c drivers/isdn/gigaset/common.c: Remove useless kfree 2012-09-13 17:05:17 -04:00
dummyll.c isdn/gigaset: unify function return values 2012-05-07 22:37:56 -04:00
ev-layer.c isdn/gigaset: unify function return values 2012-05-07 22:37:56 -04:00
gigaset.h isdn/gigaset: unify function return values 2012-05-07 22:37:56 -04:00
i4l.c isdn/gigaset: unify function return values 2012-05-07 22:37:56 -04:00
interface.c TTY: use tty_port_register_device 2012-08-13 16:50:19 -07:00
isocdata.c isdn/gigaset: unify function return values 2012-05-07 22:37:56 -04:00
proc.c isdn: whitespace coding style cleanup 2012-02-21 09:04:01 -08:00
ser-gigaset.c isdn/gigaset: unify function return values 2012-05-07 22:37:56 -04:00
usb-gigaset.c USB 3.5-rc1 pull request 2012-05-22 15:50:46 -07:00