Skip to contentSkip to conversation

USB: usb-skeleton.c: fix compilation error and restore kref_put on fail in skel_open

PATCH Superseded Constantine Shulyupin 2 participants 2 messages Oct 10, 2012 USB

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 USB: usb-skeleton.c: fix compilation error and restore kref_put on fail in skel_open

From: Constantine Shulyupin <[email protected]>

Function skel_open increments usage count for the device with kref_get and the usage count should be decremented on the function failure.

Some last changes in function skel_open and finally commit 52a7499 Revert "USB: usb-skeleton.c: fix open/disconnect race" introduced a bug in function skel_open, which this patch fixes.

--
Changelog:
-- Fixed accordinly feedback of Oliver Neukum oneukum at suse.de: also need to drop the lock.

---
 drivers/usb/usb-skeleton.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/usb/usb-skeleton.c +3 -2
index 0616f23..2025d03 100644
@@ -113,8 +113,9 @@ static int skel_open(struct inode *inode, struct file *file)
 	mutex_lock(&dev->io_mutex);
 
 	retval = usb_autopm_get_interface(interface);
-	if (retval)
-		goto out_err;
+	if (retval) {
+		kref_put(&dev->kref, skel_delete);
+	}
 
 	/* save our object in the file's private structure */
 	file->private_data = dev;
Signature · 1 line
1.7.9.5
#1 lore raw
Quoted 11 lines · On Wednesday 10 October 2012 12:32:54 Constantine Shulyupin wrote:

From: Constantine Shulyupin <[email protected]>

Function skel_open increments usage count for the device with kref_get and the usage count should be decremented on the function failure.

Some last changes in function skel_open and finally commit 52a7499 Revert "USB: usb-skeleton.c: fix open/disconnect race" introduced a bug in function skel_open, which this patch fixes.

--
Changelog:
-- Fixed accordinly feedback of Oliver Neukum oneukum at suse.de: also need to drop the lock.

Well, touching file->private_data is not nice. It is correct, but really dirty. The skeleton driver should be nice. Could you introduce a second label for goto at the right place?

Regards
Oliver