linux/drivers/media/platform
Sylwester Nawrocki 3cf138a639 [media] exynos4-is: Prevent NULL pointer dereference when firmware isn't loaded
Ensure the firmware isn't accessed in the driver when the firmware loading
routine has not completed. This fixes a potential kernel crash:
[   96.510000] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[   96.520000] pgd = ee604000
[   96.520000] [00000000] *pgd=6e947831, *pte=00000000, *ppte=00000000
[   96.530000] Internal error: Oops: 17 [#1] PREEMPT SMP ARM
[   96.530000] Modules linked in:
[   96.530000] CPU: 2 PID: 2787 Comm: camera_test Not tainted 3.10.0-rc1-00269-gcdbde37-dirty #2158
[   96.545000] task: ee42e400 ti: edfcc000 task.ti: edfcc000
[   96.545000] PC is at fimc_is_start_firmware+0x14/0x94
[   96.545000] LR is at fimc_isp_subdev_s_power+0x13c/0x1f8
	...
[   96.745000] [<c03e0354>] (fimc_is_start_firmware+0x14/0x94) from [<c03e1cc4>] (fimc_isp_subdev_s_power+0x13c/0x1f8)
[   96.745000] [<c03e1cc4>] (fimc_isp_subdev_s_power+0x13c/0x1f8) from [<c03ed088>] (__subdev_set_power+0x70/0x84)
[   96.745000] [<c03ed088>] (__subdev_set_power+0x70/0x84) from [<c03ed164>] (fimc_pipeline_s_power+0xc8/0x164)
[   96.745000] [<c03ed164>] (fimc_pipeline_s_power+0xc8/0x164) from [<c03ee2b8>] (__fimc_pipeline_open+0x90/0x268)
[   96.745000] [<c03ee2b8>] (__fimc_pipeline_open+0x90/0x268) from [<c03ec5f0>] (fimc_capture_open+0xe4/0x1ec)
[   96.745000] [<c03ec5f0>] (fimc_capture_open+0xe4/0x1ec) from [<c03c5560>] (v4l2_open+0xa8/0xe4)
[   96.745000] [<c03c5560>] (v4l2_open+0xa8/0xe4) from [<c0112900>] (chrdev_open+0x9c/0x158)
[   96.745000] [<c0112900>] (chrdev_open+0x9c/0x158) from [<c010d3e0>] (do_dentry_open+0x1f4/0x27c)
[   96.745000] [<c010d3e0>] (do_dentry_open+0x1f4/0x27c) from [<c010d558>] (finish_open+0x34/0x50)
[   96.745000] [<c010d558>] (finish_open+0x34/0x50) from [<c011bea0>] (do_last+0x59c/0xbcc)
[   96.745000] [<c011bea0>] (do_last+0x59c/0xbcc) from [<c011c580>] (path_openat+0xb0/0x484)
[   96.745000] [<c011c580>] (path_openat+0xb0/0x484) from [<c011ca58>] (do_filp_open+0x30/0x84)
[   96.745000] [<c011ca58>] (do_filp_open+0x30/0x84) from [<c010d060>] (do_sys_open+0xe8/0x170)
[   96.745000] [<c010d060>] (do_sys_open+0xe8/0x170) from [<c000f040>] (ret_fast_syscall+0x0/0x30)

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2013-06-08 19:52:34 -03:00
..
blackfin [media] v4l2: add const to argument of write-only s_register ioctl 2013-03-24 08:47:01 -03:00
davinci [media] vpfe-capture.c: remove unused label probe_free_lock 2013-05-21 07:59:52 -03:00
exynos4-is [media] exynos4-is: Prevent NULL pointer dereference when firmware isn't loaded 2013-06-08 19:52:34 -03:00
exynos-gsc [media] exynos-gsc: Add copy time stamp handling 2013-04-25 09:48:04 -03:00
marvell-ccic [media] v4l2: add const to argument of write-only s_register ioctl 2013-03-24 08:47:01 -03:00
omap [media] Corrected Oops on omap_vout when no manager is connected 2013-03-21 18:31:51 -03:00
omap3isp arm-soc: late OMAP changes 2013-02-28 20:00:40 -08:00
s3c-camif [media] s3c-camif: Fix incorrect variable type 2013-05-21 08:36:28 -03:00
s5p-g2d [media] s5p-g2d: Add copy time stamp handling 2013-04-25 09:47:07 -03:00
s5p-jpeg [media] s5p-jpeg: Add copy time stamp handling 2013-04-25 09:47:22 -03:00
s5p-mfc [media] s5p-mfc: Add NULL check for allocated buffer 2013-06-03 15:57:09 -03:00
s5p-tv [media] exynos: remove unnecessary header inclusions 2013-04-04 19:52:41 -03:00
soc_camera [media] soc-camera: fix typos in the default format-conversion table 2013-04-14 20:15:43 -03:00
arv.c
coda.c [media] coda: v4l2-compliance fix: add VIDIOC_CREATE_BUFS support 2013-06-03 15:51:26 -03:00
coda.h
fsl-viu.c [media] v4l2: pass std by value to the write-only s_std ioctl 2013-03-24 06:47:00 -03:00
indycam.c
indycam.h
Kconfig Merge branch 'devel-for-v3.10' into v4l_for_linus 2013-04-30 09:01:04 -03:00
m2m-deinterlace.c [media] m2m-deinterlace: Add copy time stamp handling 2013-04-25 09:48:14 -03:00
Makefile [media] s5p-fimc: Change the driver directory name to exynos4-is 2013-03-31 11:04:03 -03:00
mem2mem_testdev.c [media] mem2mem_testdev: set timestamp_type and add debug param 2013-04-25 09:48:49 -03:00
mx2_emmaprp.c [media] mx2-emmaprp: Add copy time stamp handling 2013-04-25 09:48:25 -03:00
omap24xxcam-dma.c
omap24xxcam.c Merge branch 'v4l_for_linus' into staging/for_v3.9 2013-01-24 18:49:18 -02:00
omap24xxcam.h
sh_veu.c [media] sh_veu: Use module_platform_driver_probe macro 2013-03-21 14:35:39 -03:00
sh_vou.c [media] v4l2: add const to argument of write-only s_register ioctl 2013-03-24 08:47:01 -03:00
timblogiw.c [media] v4l2: pass std by value to the write-only s_std ioctl 2013-03-24 06:47:00 -03:00
via-camera.c [media] v4l2: pass std by value to the write-only s_std ioctl 2013-03-24 06:47:00 -03:00
via-camera.h
vino.c [media] v4l2: pass std by value to the write-only s_std ioctl 2013-03-24 06:47:00 -03:00
vino.h
vivi.c [media] vivi: add v4l2_ctrl_modify_range test case 2013-03-24 14:11:22 -03:00