diff options
-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; |