diff options
Diffstat (limited to 'drivers/usb/usb-skeleton.c')
| -rw-r--r-- | drivers/usb/usb-skeleton.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/usb/usb-skeleton.c b/drivers/usb/usb-skeleton.c index 296b091cf168..46929a1b6f24 100644 --- a/drivers/usb/usb-skeleton.c +++ b/drivers/usb/usb-skeleton.c | |||
| @@ -90,13 +90,15 @@ static int skel_open(struct inode *inode, struct file *file) | |||
| 90 | goto exit; | 90 | goto exit; |
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | /* increment our usage count for the device */ | ||
| 94 | kref_get(&dev->kref); | ||
| 95 | |||
| 93 | /* prevent the device from being autosuspended */ | 96 | /* prevent the device from being autosuspended */ |
| 94 | retval = usb_autopm_get_interface(interface); | 97 | retval = usb_autopm_get_interface(interface); |
| 95 | if (retval) | 98 | if (retval) { |
| 99 | kref_put(&dev->kref, skel_delete); | ||
| 96 | goto exit; | 100 | goto exit; |
| 97 | 101 | } | |
| 98 | /* increment our usage count for the device */ | ||
| 99 | kref_get(&dev->kref); | ||
| 100 | 102 | ||
| 101 | /* save our object in the file's private structure */ | 103 | /* save our object in the file's private structure */ |
| 102 | file->private_data = dev; | 104 | file->private_data = dev; |
