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

Commit 69967a71 authored by Martin Hostettler's avatar Martin Hostettler Committed by Mauro Carvalho Chehab
Browse files

[media] v4l subdev: add dispatching for VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER



Ioctls on the subdevs node currently don't dispatch the register access debug
driver callbacks. Add the dispatching with the same security checks are for
non subdev video nodes (i.e. only capable(CAP_SYS_ADMIN may call the register
access ioctls).

Signed-off-by: default avatarMartin Hostettler <martin@neutronstar.dyndns.org>
Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent eb39a303
Loading
Loading
Loading
Loading
+19 −0
Original line number Original line Diff line number Diff line
@@ -173,6 +173,25 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg)


	case VIDIOC_UNSUBSCRIBE_EVENT:
	case VIDIOC_UNSUBSCRIBE_EVENT:
		return v4l2_subdev_call(sd, core, unsubscribe_event, vfh, arg);
		return v4l2_subdev_call(sd, core, unsubscribe_event, vfh, arg);

#ifdef CONFIG_VIDEO_ADV_DEBUG
	case VIDIOC_DBG_G_REGISTER:
	{
		struct v4l2_dbg_register *p = arg;

		if (!capable(CAP_SYS_ADMIN))
			return -EPERM;
		return v4l2_subdev_call(sd, core, g_register, p);
	}
	case VIDIOC_DBG_S_REGISTER:
	{
		struct v4l2_dbg_register *p = arg;

		if (!capable(CAP_SYS_ADMIN))
			return -EPERM;
		return v4l2_subdev_call(sd, core, s_register, p);
	}
#endif
#if defined(CONFIG_VIDEO_V4L2_SUBDEV_API)
#if defined(CONFIG_VIDEO_V4L2_SUBDEV_API)
	case VIDIOC_SUBDEV_G_FMT: {
	case VIDIOC_SUBDEV_G_FMT: {
		struct v4l2_subdev_format *format = arg;
		struct v4l2_subdev_format *format = arg;