[PATCH 11/13] fix kref usage in skel_open

From: stefani
Date: Thu Jun 07 2012 - 04:32:17 EST


From: Stefani Seibold <stefani@xxxxxxxxxxx>

Increment the kref at last, so we need no extra error path for decrement
them in a case of error..

Signed-off-by: Stefani Seibold <stefani@xxxxxxxxxxx>
---
drivers/usb/usb-skeleton.c | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/usb-skeleton.c b/drivers/usb/usb-skeleton.c
index 0a1ab0b..551fb51 100644
--- a/drivers/usb/usb-skeleton.c
+++ b/drivers/usb/usb-skeleton.c
@@ -92,18 +92,19 @@ static int skel_open(struct inode *inode, struct file *file)
if (!dev)
return -ENODEV;

- /* increment our usage count for the device */
- kref_get(&dev->kref);
-
/*
* must be not locked since a disconnect waits in usb_deregister_dev()
* due the already locked minor_rwsem in the usb_open() function
*/
retval = usb_autopm_get_interface(interface);
+ if (!retval)
+ return retval;
+
+ /* increment our usage count for the device */
+ kref_get(&dev->kref);

/* save our object in the file's private structure */
- if (!retval)
- file->private_data = dev;
+ file->private_data = dev;

return retval;
}
--
1.7.8.6

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/