diff options
-rw-r--r-- | drivers/usb/gadget/function/f_accessory.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/gadget/function/f_accessory.c b/drivers/usb/gadget/function/f_accessory.c index 0cae99243080..8cafecce5243 100644 --- a/drivers/usb/gadget/function/f_accessory.c +++ b/drivers/usb/gadget/function/f_accessory.c | |||
@@ -302,6 +302,12 @@ static void __put_acc_dev(struct kref *kref) | |||
302 | struct acc_dev_ref *ref = container_of(kref, struct acc_dev_ref, kref); | 302 | struct acc_dev_ref *ref = container_of(kref, struct acc_dev_ref, kref); |
303 | struct acc_dev *dev = ref->acc_dev; | 303 | struct acc_dev *dev = ref->acc_dev; |
304 | 304 | ||
305 | /* Cancel any async work */ | ||
306 | cancel_delayed_work_sync(&dev->start_work); | ||
307 | cancel_work_sync(&dev->getprotocol_work); | ||
308 | cancel_work_sync(&dev->sendstring_work); | ||
309 | cancel_work_sync(&dev->hid_work); | ||
310 | |||
305 | ref->acc_dev = NULL; | 311 | ref->acc_dev = NULL; |
306 | kfree(dev); | 312 | kfree(dev); |
307 | } | 313 | } |