Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion USB: usb-skeleton.c: fix compilation error and restore kref_put on fail in skel_open
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Constantine Shulyupin  
View profile  
 More options Oct 7 2012, 6:00 am
Newsgroups: linux.kernel
From: Constantine Shulyupin <co...@MakeLinux.com>
Date: Sun, 07 Oct 2012 12:00:02 +0200
Local: Sun, Oct 7 2012 6:00 am
Subject: [PATCH] USB: usb-skeleton.c: fix compilation error and restore kref_put on fail in skel_open
From: Constantine Shulyupin <co...@MakeLinux.com>

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.

Signed-off-by: Constantine Shulyupin <co...@MakeLinux.com>
---
 drivers/usb/usb-skeleton.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/usb-skeleton.c b/drivers/usb/usb-skeleton.c
index 0616f23..027005b 100644
--- a/drivers/usb/usb-skeleton.c
+++ b/drivers/usb/usb-skeleton.c
@@ -113,8 +113,10 @@ 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);
+               goto exit;
+       }

        /* save our object in the file's private structure */
        file->private_data = dev;
--
1.7.9.5

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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.