]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
USB: usb-skeleton.c: cleanup open_count
authorMing Lei <tom.leiming@gmail.com>
Fri, 16 Dec 2011 14:20:44 +0000 (22:20 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 4 Jan 2012 23:52:41 +0000 (15:52 -0800)
It is not necessary to use the 'open_count' for handling
runtime pm only, because runtinme pm has built-in counter
to handle this, so remove it to make code clean.

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/usb-skeleton.c

index 3635f9e375593f418b09b9d9ffd0380c0493e57d..d9a95847ec1fde52b7d26ac40215881b5645aa08 100644 (file)
@@ -62,7 +62,6 @@ struct usb_skel {
        __u8                    bulk_in_endpointAddr;   /* the address of the bulk in endpoint */
        __u8                    bulk_out_endpointAddr;  /* the address of the bulk out endpoint */
        int                     errors;                 /* the last request tanked */
-       int                     open_count;             /* count the number of openers */
        bool                    ongoing_read;           /* a read is going on */
        bool                    processed_urb;          /* indicates we haven't processed the urb */
        spinlock_t              err_lock;               /* lock for errors */
@@ -122,22 +121,9 @@ static int skel_open(struct inode *inode, struct file *file)
                goto out_err;
        }
 
-       if (!dev->open_count++) {
-               retval = usb_autopm_get_interface(interface);
-                       if (retval) {
-                               dev->open_count--;
-                               mutex_unlock(&dev->io_mutex);
-                               kref_put(&dev->kref, skel_delete);
-                               goto exit;
-                       }
-       } /* else { //uncomment this block if you want exclusive open
-               retval = -EBUSY;
-               dev->open_count--;
-               mutex_unlock(&dev->io_mutex);
-               kref_put(&dev->kref, skel_delete);
-               goto exit;
-       } */
-       /* prevent the device from being autosuspended */
+       retval = usb_autopm_get_interface(interface);
+       if (retval)
+               goto out_err;
 
        /* save our object in the file's private structure */
        file->private_data = dev;
@@ -161,7 +147,7 @@ static int skel_release(struct inode *inode, struct file *file)
 
        /* allow the device to be autosuspended */
        mutex_lock(&dev->io_mutex);
-       if (!--dev->open_count && dev->interface)
+       if (dev->interface)
                usb_autopm_put_interface(dev->interface);
        mutex_unlock(&dev->io_mutex);