[media] v4l2-compat-ioctl32: VIDIOC_S_EDID should return all fields on error
authorHans Verkuil <hverkuil@xs4all.nl>
Thu, 30 Mar 2017 12:05:25 +0000 (09:05 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Mon, 10 Apr 2017 10:27:09 +0000 (07:27 -0300)
commitba7ed691dcce1a4921ea92b8bf75af52f5e504f6
tree43547c2e00aa658291e15447545b2cf51111bcdb
parent3369cde0afc1e6aa405768ccc83a406d385055ea
[media] v4l2-compat-ioctl32: VIDIOC_S_EDID should return all fields on error

Most ioctls do not have to write back the contents of the argument
if an error is returned. But VIDIOC_S_EDID is an exception together
with the EXT_CTRLS ioctls (already handled correctly).

Add this exception to v4l2-compat-ioctl32.

This fixes a compliance error when using compat32 and trying to
set a new EDID with more blocks than the hardware supports. In
that case the driver will return -E2BIG and set edid.blocks to the
actual maximum number of blocks. This field was never copied back
to userspace due to this bug.

Signed-off-by: Hans Verkuil <hansverk@cisco.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/v4l2-core/v4l2-compat-ioctl32.c