OSDN Git Service

drm/imx: ipuv3-crtc: Return error if ipu_plane_init() fails for primary plane
authorLiu Ying <Ying.Liu@freescale.com>
Fri, 6 Nov 2015 14:42:45 +0000 (22:42 +0800)
committerPhilipp Zabel <p.zabel@pengutronix.de>
Thu, 19 Nov 2015 11:51:39 +0000 (12:51 +0100)
For primary plane initialization failure cases, ipu_plane_init() may return
a pointer encoded by ERR_PTR(). So, we should bailout instead of using that
pointer blindly.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
drivers/gpu/drm/imx/ipuv3-crtc.c

index f11284d..4cbc3df 100644 (file)
@@ -361,6 +361,10 @@ static int ipu_crtc_init(struct ipu_crtc *ipu_crtc,
                dp = IPU_DP_FLOW_SYNC_BG;
        ipu_crtc->plane[0] = ipu_plane_init(drm, ipu, pdata->dma[0], dp, 0,
                                            DRM_PLANE_TYPE_PRIMARY);
+       if (IS_ERR(ipu_crtc->plane[0])) {
+               ret = PTR_ERR(ipu_crtc->plane[0]);
+               goto err_put_resources;
+       }
 
        ret = imx_drm_add_crtc(drm, &ipu_crtc->base, &ipu_crtc->imx_crtc,
                        &ipu_crtc->plane[0]->base, &ipu_crtc_helper_funcs,