forked from Minki/linux
cc7d2dfb75
While running v4l2-compliance tests on vivid I suddenly got errors due to a call to vmalloc_user with size 0 from vb2. Digging deeper into the cause I discovered that this was due to the fact that struct v4l2_plane_pix_format defines bytesperline as a __u16 instead of a __u32. The test I was running selected a format of 4 * 4096 by 4 * 2048 with a 32 bit pixelformat. So bytesperline was 4 * 4 * 4096 = 65536, which becomes 0 in a __u16. And bytesperline * height is suddenly 0 as well. While the vivid driver may be a virtual driver, it is to be expected that this limit will be hit for real hardware as well in the near future: 8k deep-color video will already reach it. The solution is to change the type to __u32. The only drivers besides vivid that use the multiplanar API are little-endian ARM and SH platforms (exynos, ti-vpe, vsp1), so this is safe. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> |
||
---|---|---|
.. | ||
hdmi_drv.c | ||
hdmiphy_drv.c | ||
Kconfig | ||
Makefile | ||
mixer_drv.c | ||
mixer_grp_layer.c | ||
mixer_reg.c | ||
mixer_video.c | ||
mixer_vp_layer.c | ||
mixer.h | ||
regs-hdmi.h | ||
regs-mixer.h | ||
regs-sdo.h | ||
regs-vp.h | ||
sdo_drv.c | ||
sii9234_drv.c |