diff options
author | Ming Lei <tom.leiming@gmail.com> | 2011-12-16 22:20:44 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2012-01-04 15:52:41 -0800 |
commit | e28dbb0661ca49ada2d6a307a1ec93dd75d515e0 (patch) | |
tree | 269aac42395eace3a010f77cd5fc29a328899d88 | |
parent | 26c71a79cade5ccad80e0752cd82f3518df48fb3 (diff) | |
download | op-kernel-dev-e28dbb0661ca49ada2d6a307a1ec93dd75d515e0.zip op-kernel-dev-e28dbb0661ca49ada2d6a307a1ec93dd75d515e0.tar.gz |
USB: usb-skeleton.c: cleanup open_count
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>
-rw-r--r-- | drivers/usb/usb-skeleton.c | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/drivers/usb/usb-skeleton.c b/drivers/usb/usb-skeleton.c index 3635f9e..d9a9584 100644 --- a/drivers/usb/usb-skeleton.c +++ b/drivers/usb/usb-skeleton.c @@ -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); |