[PATCH] video: ipuv3: imx-pd: Fix crash if node does not contain "timings" property

Alexander Shiyan shc_work at mail.ru
Thu Jul 7 00:15:06 PDT 2016


This patch fix the system crash if DT node does not contain "timings" property.

software interrupt
pc : [<97f31078>]    lr : [<97f3103c>]
sp : 97fefed8  ip : 97fefed0  fp : 00000000
r10: 00000000  r9 : 97fe4000  r8 : 95ff6b40
r7 : 96038024  r6 : 67660005  r5 : 96034f64  r4 : 96038024
r3 : 00000000  r2 : 00000020  r1 : 0000000a  r0 : 00000009
Flags: nZCv  IRQs off  FIQs off  Mode SVC_32
[<97f31078>] (imx_pd_ioctl+0x64/0xa0) from [<97f2dacc>] (vpl_ioctl+0xb0/0xf0)
[<97f2dacc>] (vpl_ioctl+0xb0/0xf0) from [<97f3026c>] (ipufb_probe+0x230/0x2c8)
[<97f3026c>] (ipufb_probe+0x230/0x2c8) from [<97f0d164>] (platform_probe+0x10/0x14)
[<97f0d164>] (platform_probe+0x10/0x14) from [<97f0c9f4>] (device_probe+0x38/0xb0)
[<97f0c9f4>] (device_probe+0x38/0xb0) from [<97f0cab0>] (match.part.1+0x44/0x50)
[<97f0cab0>] (match.part.1+0x44/0x50) from [<97f0cd98>] (register_driver+0x90/0xc8)
[<97f0cd98>] (register_driver+0x90/0xc8) from [<97f00d74>] (start_barebox+0x28/0xf0)
[<97f00d74>] (start_barebox+0x28/0xf0) from [<97f664a0>] (barebox_non_pbl_start+0x12c/0x154)
[<97f664a0>] (barebox_non_pbl_start+0x12c/0x154) from [<97f00004>] (__bare_init_start+0x0/0x10)

[<97f65cd0>] (unwind_backtrace+0x0/0x8c) from [<97f01190>] (panic+0x28/0x38)
[<97f01190>] (panic+0x28/0x38) from [<97f661cc>] (do_exception+0x10/0x14)
[<97f661cc>] (do_exception+0x10/0x14) from [<97f66204>] (do_software_interrupt+0

Signed-off-by: Alexander Shiyan <shc_work at mail.ru>
---
 drivers/video/imx-ipu-v3/imx-pd.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/video/imx-ipu-v3/imx-pd.c b/drivers/video/imx-ipu-v3/imx-pd.c
index 12cad8f..50f6de5 100644
--- a/drivers/video/imx-ipu-v3/imx-pd.c
+++ b/drivers/video/imx-ipu-v3/imx-pd.c
@@ -49,6 +49,9 @@ static int imx_pd_ioctl(struct vpl *vpl, unsigned int port,
 		return 0;
 
 	case VPL_GET_VIDEOMODES:
+		if (!imx_pd->timings)
+			return -ENODATA;
+
 		timings = data;
 
 		timings->num_modes   = imx_pd->timings->num_modes;
-- 
2.4.9




More information about the barebox mailing list