diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2019-09-05 13:11:06 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-09-05 13:11:04 -0700 |
| commit | a2c5ca327b447828300e9ffde4b7fb0a81223957 (patch) | |
| tree | 10fdf84404308a4ec4ef16848ed85e894c63d8c1 /drivers/usb/misc | |
| parent | 53eacca70d06c9410779ce3e1e705953fa8ba6fb (diff) | |
| parent | 0748a0e20318c4c5f7807f745e56c6256d6172cd (diff) | |
Merge "Merge android-4.4.190 (ac7fbca) into msm-4.4"
Diffstat (limited to 'drivers/usb/misc')
| -rw-r--r-- | drivers/usb/misc/iowarrior.c | 7 | ||||
| -rw-r--r-- | drivers/usb/misc/yurex.c | 2 |
2 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c index 5e43fd881a9c..836fb65c3c72 100644 --- a/drivers/usb/misc/iowarrior.c +++ b/drivers/usb/misc/iowarrior.c @@ -898,19 +898,20 @@ static void iowarrior_disconnect(struct usb_interface *interface) dev = usb_get_intfdata(interface); mutex_lock(&iowarrior_open_disc_lock); usb_set_intfdata(interface, NULL); + /* prevent device read, write and ioctl */ + dev->present = 0; minor = dev->minor; + mutex_unlock(&iowarrior_open_disc_lock); + /* give back our minor - this will call close() locks need to be dropped at this point*/ - /* give back our minor */ usb_deregister_dev(interface, &iowarrior_class); mutex_lock(&dev->mutex); /* prevent device read, write and ioctl */ - dev->present = 0; mutex_unlock(&dev->mutex); - mutex_unlock(&iowarrior_open_disc_lock); if (dev->opened) { /* There is a process that holds a filedescriptor to the device , diff --git a/drivers/usb/misc/yurex.c b/drivers/usb/misc/yurex.c index a8b6d0036e5d..2222ec2275fc 100644 --- a/drivers/usb/misc/yurex.c +++ b/drivers/usb/misc/yurex.c @@ -96,7 +96,6 @@ static void yurex_delete(struct kref *kref) dev_dbg(&dev->interface->dev, "%s\n", __func__); - usb_put_dev(dev->udev); if (dev->cntl_urb) { usb_kill_urb(dev->cntl_urb); kfree(dev->cntl_req); @@ -112,6 +111,7 @@ static void yurex_delete(struct kref *kref) dev->int_buffer, dev->urb->transfer_dma); usb_free_urb(dev->urb); } + usb_put_dev(dev->udev); kfree(dev); } |
