summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Sobrie <olivier@sobrie.be>2015-01-30 13:22:02 +0100
committerDavid S. Miller <davem@davemloft.net>2015-02-01 21:33:27 +0100
commitcc491970f5cef560b9e5bf037f0c9dd1e4d6a4bd (patch)
tree54978cb7219d5879cf9c4c937a483276f4e965cd
parenthso: update serial_table in usb disconnect method (diff)
downloadlinux-cc491970f5cef560b9e5bf037f0c9dd1e4d6a4bd.tar.xz
linux-cc491970f5cef560b9e5bf037f0c9dd1e4d6a4bd.zip
hso: add missing cancel_work_sync in disconnect()
For hso serial devices, two cancel_work_sync were missing in the disconnect method. Signed-off-by: Olivier Sobrie <olivier@sobrie.be> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/usb/hso.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
index cb33fb4e9a80..e94a02395357 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -3106,6 +3106,8 @@ static void hso_free_interface(struct usb_interface *interface)
mutex_lock(&serial->parent->mutex);
serial->parent->usb_gone = 1;
mutex_unlock(&serial->parent->mutex);
+ cancel_work_sync(&serial_table[i]->async_put_intf);
+ cancel_work_sync(&serial_table[i]->async_get_intf);
hso_serial_tty_unregister(serial);
kref_put(&serial_table[i]->ref, hso_serial_ref_free);
set_serial_by_index(i, NULL);