diff options
author | Robby Cai <robby.cai@nxp.com> | 2016-03-21 18:53:09 +0800 |
---|---|---|
committer | Robby Cai <robby.cai@nxp.com> | 2016-03-31 15:02:19 +0800 |
commit | a4d2a08f3bfc57ff5d7d1307fb23f52f1e681aca (patch) | |
tree | 5754e72c84e7e305856de34aa101baa2eec7ecc3 | |
parent | 85a98a07d9f4811ff74a9695b465aee6eebb8833 (diff) |
MLK-12277 media: camera: add check for width and height against 0rel_imx_4.1.15_1.1.0_ga
when do vte test it meets follow dump in small probability.
Add against-0 check to resovle this.
$ v4l_emma.sh 1 1
$ v4l_emma.sh 1 9
------------[ cut here ]------------
: /dev/video1 Set PARM sucessfulWARNING: CPU: 0 PID: 1123 at /home/bamboo/build/4.1.X-1.0.0_ga/fsl-
imx-fb/temp_build_dir/build_fsl-imx-fb/tmp/work-shared/imx6qdlsolo/kernel-source/mm/page_alloc.c:266
5 __alloc_pages_nodemask+0x3c8/0x894()
ly
v4l_capture_testapp 0 TINModules linked in:FO : /dev/video1 input formatti mx6s_captureng pass
v4l_capture_testapp 0 ov5640_camera TINFO : PRP_ENC_ON_D gpRGBcon evbugv_buf malloc pass!
CPU: 0 PID: 1123 Comm: v4l2_capture_em Not tainted 4.1.8-1.0.0+g87e6c2f #1
Hardware name: Freescale i.MX6 Ultralite (Device Tree)
[<80015d84>] (unwind_backtrace) from [<80012728>] (show_stack+0x10/0x14)
[<80012728>] (show_stack) from [<80750a54>] (dump_stack+0x84/0xc4)
[<80750a54>] (dump_stack) from [<80032f3c>] (warn_slowpath_common+0x80/0xb0)
[<80032f3c>] (warn_slowpath_common) from [<80033008>] (warn_slowpath_null+0x1c/0x24)
[<80033008>] (warn_slowpath_null) from [<800b2cc4>] (__alloc_pages_nodemask+0x3c8/0x894)
[<800b2cc4>] (__alloc_pages_nodemask) from [<8001ba3c>] (__dma_alloc_buffer.isra.3+0x2c/0x84)
[<8001ba3c>] (__dma_alloc_buffer.isra.3) from [<8001bab0>] (__alloc_remap_buffer.isra.6+0x1c/0x8c)
[<8001bab0>] (__alloc_remap_buffer.isra.6) from [<8001bd1c>] (__dma_alloc+0x1fc/0x228)
[<8001bd1c>] (__dma_alloc) from [<8001be78>] (arm_dma_alloc+0x8c/0xa0)
[<8001be78>] (arm_dma_alloc) from [<804cd934>] (vb2_dc_alloc+0x68/0x100)
[<804cd934>] (vb2_dc_alloc) from [<804c7df8>] (__vb2_queue_alloc+0x134/0x4d0)
[<804c7df8>] (__vb2_queue_alloc) from [<804ca794>] (__reqbufs.isra.17+0x1a8/0x304)
[<804ca794>] (__reqbufs.isra.17) from [<804b7ac0>] (__video_do_ioctl+0x2b0/0x324)
[<804b7ac0>] (__video_do_ioctl) from [<804b753c>] (video_usercopy+0x1b8/0x480)
[<804b753c>] (video_usercopy) from [<804b3f34>] (v4l2_ioctl+0x118/0x150)
[<804b3f34>] (v4l2_ioctl) from [<800f8360>] (do_vfs_ioctl+0x3e8/0x608)
[<800f8360>] (do_vfs_ioctl) from [<800f85b4>] (SyS_ioctl+0x34/0x5c)
[<800f85b4>] (SyS_ioctl) from [<8000f480>] (ret_fast_syscall+0x0/0x3c)
---[ end trace 55ed68f89eca4805 ]---
mx6s-csi 21c4000.csi: dma_alloc_coherent of size 0 failed
Signed-off-by: Robby Cai <robby.cai@nxp.com>
(cherry picked from commit 2c1fa9347a50e05c79b76de35f84192af796f677)
-rw-r--r-- | drivers/media/platform/mxc/subdev/mx6s_capture.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/media/platform/mxc/subdev/mx6s_capture.c b/drivers/media/platform/mxc/subdev/mx6s_capture.c index a5b2d3d2f0f2..ed60f8dc72dd 100644 --- a/drivers/media/platform/mxc/subdev/mx6s_capture.c +++ b/drivers/media/platform/mxc/subdev/mx6s_capture.c @@ -1425,6 +1425,12 @@ static int mx6s_vidioc_try_fmt_vid_cap(struct file *file, void *priv, return -EINVAL; } + if (f->fmt.pix.width == 0 || f->fmt.pix.height == 0) { + dev_err(csi_dev->dev, "width %d, height %d is too small.\n", + f->fmt.pix.width, f->fmt.pix.height); + return -EINVAL; + } + v4l2_fill_mbus_format(&mbus_fmt, pix, fmt->mbus_code); ret = v4l2_subdev_call(sd, video, s_mbus_fmt, &mbus_fmt); v4l2_fill_pix_format(pix, &mbus_fmt); |