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-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html