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

Commit 8f695d3f authored by Ezequiel García's avatar Ezequiel García Committed by Mauro Carvalho Chehab
Browse files

[media] v4l2-dev.c: Move video_put() after debug printk



It is possible that video_put() releases video_device struct,
provoking a panic when debug printk wants to get video_device node name.

Signed-off-by: default avatarEzequiel Garcia <elezegarcia@gmail.com>
Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent cd779254
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -478,12 +478,12 @@ static int v4l2_open(struct inode *inode, struct file *filp)
	}

err:
	/* decrease the refcount in case of an error */
	if (ret)
		video_put(vdev);
	if (vdev->debug)
		printk(KERN_DEBUG "%s: open (%d)\n",
			video_device_node_name(vdev), ret);
	/* decrease the refcount in case of an error */
	if (ret)
		video_put(vdev);
	return ret;
}

@@ -500,12 +500,12 @@ static int v4l2_release(struct inode *inode, struct file *filp)
		if (test_bit(V4L2_FL_LOCK_ALL_FOPS, &vdev->flags))
			mutex_unlock(vdev->lock);
	}
	/* decrease the refcount unconditionally since the release()
	   return value is ignored. */
	video_put(vdev);
	if (vdev->debug)
		printk(KERN_DEBUG "%s: release\n",
			video_device_node_name(vdev));
	/* decrease the refcount unconditionally since the release()
	   return value is ignored. */
	video_put(vdev);
	return ret;
}