diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-08-04 09:28:25 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-08-04 09:28:25 -0300 |
commit | e465ad8685774c7c9a2cf71e9d196b7aaa8cae35 (patch) | |
tree | b1f83dd9bf6f9447f4f1491b6974315b5bc99ee9 /linux/drivers/media/video/s2255drv.c | |
parent | 4be14b5602f1f21b6e2a436f240a12797888ae48 (diff) | |
parent | c8b5c505811fd4797e0ea35bcc60478d626a0971 (diff) | |
download | mediapointer-dvb-s2-e465ad8685774c7c9a2cf71e9d196b7aaa8cae35.tar.gz mediapointer-dvb-s2-e465ad8685774c7c9a2cf71e9d196b7aaa8cae35.tar.bz2 |
merge: http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-bkl
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/drivers/media/video/s2255drv.c')
-rw-r--r-- | linux/drivers/media/video/s2255drv.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/linux/drivers/media/video/s2255drv.c b/linux/drivers/media/video/s2255drv.c index 85e98c9d2..939edff48 100644 --- a/linux/drivers/media/video/s2255drv.c +++ b/linux/drivers/media/video/s2255drv.c @@ -1457,6 +1457,7 @@ static int s2255_open(struct inode *inode, struct file *file) int cur_channel = -1; dprintk(1, "s2255: open called (minor=%d)\n", minor); + lock_kernel(); list_for_each(list, &s2255_devlist) { h = list_entry(list, struct s2255_dev, s2255_devlist); for (i = 0; i < MAX_CHANNELS; i++) { @@ -1469,6 +1470,7 @@ static int s2255_open(struct inode *inode, struct file *file) } if ((NULL == dev) || (cur_channel == -1)) { + unlock_kernel(); dprintk(1, "s2255: openv4l no dev\n"); return -ENODEV; } @@ -1490,6 +1492,7 @@ static int s2255_open(struct inode *inode, struct file *file) printk(KERN_INFO "2255 FW load failed.\n"); dev->users[cur_channel]--; mutex_unlock(&dev->open_lock); + unlock_kernel(); return -EFAULT; } } else if (atomic_read(&dev->fw_data->fw_state) == S2255_FW_NOTLOADED) { @@ -1506,6 +1509,7 @@ static int s2255_open(struct inode *inode, struct file *file) "try again\n"); dev->users[cur_channel]--; mutex_unlock(&dev->open_lock); + unlock_kernel(); return -EBUSY; } } @@ -1515,6 +1519,7 @@ static int s2255_open(struct inode *inode, struct file *file) if (NULL == fh) { dev->users[cur_channel]--; mutex_unlock(&dev->open_lock); + unlock_kernel(); return -ENOMEM; } @@ -1548,6 +1553,7 @@ static int s2255_open(struct inode *inode, struct file *file) kref_get(&dev->kref); mutex_unlock(&dev->open_lock); + unlock_kernel(); return 0; } |