Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b499fe5 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

[media] stk-webcam: fix read() handling when reqbufs was already called

parent f80daa2d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -654,7 +654,7 @@ static ssize_t stk_read(struct file *fp, char __user *buf,

	if (!is_present(dev))
		return -EIO;
	if (dev->owner && dev->owner != fp)
	if (dev->owner && (!dev->reading || dev->owner != fp))
		return -EBUSY;
	dev->owner = fp;
	if (!is_streaming(dev)) {
@@ -662,6 +662,7 @@ static ssize_t stk_read(struct file *fp, char __user *buf,
			|| stk_allocate_buffers(dev, 3)
			|| stk_start_stream(dev))
			return -ENOMEM;
		dev->reading = 1;
		spin_lock_irqsave(&dev->spinlock, flags);
		for (i = 0; i < dev->n_sbufs; i++) {
			list_add_tail(&dev->sio_bufs[i].list, &dev->sio_avail);
+1 −0
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ struct stk_camera {

	int frame_size;
	/* Streaming buffers */
	int reading;
	unsigned int n_sbufs;
	struct stk_sio_buffer *sio_bufs;
	struct list_head sio_avail;