summaryrefslogtreecommitdiff
path: root/drivers/hid/usbhid/hiddev.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2010-03-15 23:23:54 (GMT)
committerDavid S. Miller <davem@davemloft.net>2010-03-15 23:23:54 (GMT)
commit4961e02f1999e1c3468c09b2669c94d7c3ae82a8 (patch)
tree44c15abb09d7ba5e17a9aba95ee246648b1c1a8a /drivers/hid/usbhid/hiddev.c
parentd14a0ebda7d3daede1a99c01527affb9ceaa4c22 (diff)
parenta3d3203e4bb40f253b1541e310dc0f9305be7c84 (diff)
downloadlinux-fsl-qoriq-4961e02f1999e1c3468c09b2669c94d7c3ae82a8.tar.xz
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Diffstat (limited to 'drivers/hid/usbhid/hiddev.c')
-rw-r--r--drivers/hid/usbhid/hiddev.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c
index 867e084..433602a 100644
--- a/drivers/hid/usbhid/hiddev.c
+++ b/drivers/hid/usbhid/hiddev.c
@@ -265,9 +265,10 @@ static int hiddev_release(struct inode * inode, struct file * file)
static int hiddev_open(struct inode *inode, struct file *file)
{
struct hiddev_list *list;
- int res;
+ int res, i;
- int i = iminor(inode) - HIDDEV_MINOR_BASE;
+ lock_kernel();
+ i = iminor(inode) - HIDDEV_MINOR_BASE;
if (i >= HIDDEV_MINORS || i < 0 || !hiddev_table[i])
return -ENODEV;
@@ -313,10 +314,12 @@ static int hiddev_open(struct inode *inode, struct file *file)
usbhid_open(hid);
}
+ unlock_kernel();
return 0;
bail:
file->private_data = NULL;
kfree(list);
+ unlock_kernel();
return res;
}