diff --git a/drivers/usb/misc/adutux.c b/drivers/usb/misc/adutux.c index 344d523..860eade 100644 --- a/drivers/usb/misc/adutux.c +++ b/drivers/usb/misc/adutux.c @@ -328,8 +328,10 @@ static int adu_release(struct inode *inode, struct file *file) adu_release_internal(dev); if (dev->udev == NULL) { /* the device was unplugged before the file was released */ - if (!dev->open_count) /* ... and we're the last user */ + if (dev && !dev->open_count) { /* ... and we're the last user */ adu_delete(dev); + dev = NULL; + } } unlock: mutex_unlock(&adutux_mutex); @@ -771,8 +773,10 @@ static void adu_disconnect(struct usb_interface *interface) usb_set_intfdata(interface, NULL); /* if the device is not opened, then we clean up right now */ - if (!dev->open_count) + if (dev && !dev->open_count) { adu_delete(dev); + dev = NULL; + } mutex_unlock(&adutux_mutex); }