Skip to content

Commit

Permalink
V4L/DVB (11392): patch: s2255drv driver removal problem fixed
Browse files Browse the repository at this point in the history
This patch fixes kfree problem on driver removal, fixes streamoff problem
and removes unnecessary videobuf_waiton from free_buffer function.

Signed-off-by: Dean Anderson <dean@sensoray.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Dean Anderson authored and Mauro Carvalho Chehab committed Apr 7, 2009
1 parent 746ce93 commit b7732a3
Showing 1 changed file with 2 additions and 6 deletions.
8 changes: 2 additions & 6 deletions drivers/media/video/s2255drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -722,7 +722,6 @@ static void free_buffer(struct videobuf_queue *vq, struct s2255_buffer *buf)
{
dprintk(4, "%s\n", __func__);

videobuf_waiton(&buf->vb, 0, 0);
videobuf_vmalloc_free(&buf->vb);
buf->vb.state = VIDEOBUF_NEEDS_INIT;
}
Expand Down Expand Up @@ -1324,7 +1323,6 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)

static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
{
int res;
struct s2255_fh *fh = priv;
struct s2255_dev *dev = fh->dev;

Expand All @@ -1338,9 +1336,7 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
return -EINVAL;
}
s2255_stop_acquire(dev, fh->channel);
res = videobuf_streamoff(&fh->vb_vidq);
if (res < 0)
return res;
videobuf_streamoff(&fh->vb_vidq);
res_free(dev, fh);
return 0;
}
Expand Down Expand Up @@ -1707,13 +1703,13 @@ static void s2255_destroy(struct kref *kref)
kfree(dev->fw_data);
usb_put_dev(dev->udev);
dprintk(1, "%s", __func__);
kfree(dev);

while (!list_empty(&s2255_devlist)) {
list = s2255_devlist.next;
list_del(list);
}
mutex_unlock(&dev->open_lock);
kfree(dev);
}

static int s2255_close(struct file *file)
Expand Down

0 comments on commit b7732a3

Please sign in to comment.