Am Freitag, den 20.11.2015, 16:14 +0800 schrieb Liu Ying: > To avoid memory leakage, we need to cleanup the initialized ipu planes in > the bailout path of ipu_crtc_init(). > > Signed-off-by: Liu Ying <Ying.Liu@xxxxxxxxxxxxx> > --- > This patch applies to the imx-drm/fixes branch of Philipp Zabel's open git. > > drivers/gpu/drm/imx/ipuv3-crtc.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/imx/ipuv3-crtc.c b/drivers/gpu/drm/imx/ipuv3-crtc.c > index 67813ca..59f44df 100644 > --- a/drivers/gpu/drm/imx/ipuv3-crtc.c > +++ b/drivers/gpu/drm/imx/ipuv3-crtc.c > @@ -371,7 +371,7 @@ static int ipu_crtc_init(struct ipu_crtc *ipu_crtc, > ipu_crtc->dev->of_node); > if (ret) { > dev_err(ipu_crtc->dev, "adding crtc failed with %d.\n", ret); > - goto err_put_resources; > + goto err_cleanup_plane0; > } > > ret = ipu_plane_get_resources(ipu_crtc->plane[0]); > @@ -402,9 +402,14 @@ static int ipu_crtc_init(struct ipu_crtc *ipu_crtc, > return 0; > > err_put_plane_res: > + if (ipu_crtc->plane[1]) > + ipu_plane_cleanup(ipu_crtc->plane[1]); > + > ipu_plane_put_resources(ipu_crtc->plane[0]); > err_remove_crtc: > imx_drm_remove_crtc(ipu_crtc->imx_crtc); > +err_cleanup_plane0: > + ipu_plane_cleanup(ipu_crtc->plane[0]); > err_put_resources: > ipu_put_resources(ipu_crtc); I think we can use ipu_plane_destroy as-is instead of ipu_plane_put_resources + ipu_plane_cleanup. regards Philipp _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel