diff --git a/drivers/media/video/s2255drv.c b/drivers/media/video/s2255drv.c index 4c5d3672e2db1f0cb4ffafa37c8b129647551ac6..83ee93d4ad1cd7cf040e1eecf3b8eb071a26a277 100644 --- a/drivers/media/video/s2255drv.c +++ b/drivers/media/video/s2255drv.c @@ -1753,7 +1753,6 @@ static int s2255_open(struct file *file) int state; dprintk(1, "s2255: open called (dev=%s)\n", video_device_node_name(vdev)); - lock_kernel(); for (i = 0; i < MAX_CHANNELS; i++) if (&dev->vdev[i] == vdev) { cur_channel = i; @@ -1769,7 +1768,6 @@ static int s2255_open(struct file *file) switch (state) { case S2255_FW_DISCONNECTING: mutex_unlock(&dev->open_lock); - unlock_kernel(); return -ENODEV; case S2255_FW_FAILED: s2255_dev_err(&dev->udev->dev, @@ -1809,30 +1807,24 @@ static int s2255_open(struct file *file) break; case S2255_FW_FAILED: printk(KERN_INFO "2255 firmware load failed.\n"); - unlock_kernel(); return -ENODEV; case S2255_FW_DISCONNECTING: printk(KERN_INFO "%s: disconnecting\n", __func__); - unlock_kernel(); return -ENODEV; case S2255_FW_LOADED_DSPWAIT: case S2255_FW_NOTLOADED: printk(KERN_INFO "%s: firmware not loaded yet" "please try again later\n", __func__); - unlock_kernel(); return -EAGAIN; default: printk(KERN_INFO "%s: unknown state\n", __func__); - unlock_kernel(); return -EFAULT; } /* allocate + initialize per filehandle data */ fh = kzalloc(sizeof(*fh), GFP_KERNEL); - if (NULL == fh) { - unlock_kernel(); + if (NULL == fh) return -ENOMEM; - } file->private_data = fh; fh->dev = dev; fh->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; @@ -1860,7 +1852,6 @@ static int s2255_open(struct file *file) fh->type, V4L2_FIELD_INTERLACED, sizeof(struct s2255_buffer), fh); - unlock_kernel(); return 0; }