diff --git a/drivers/gpu/drm/imx/dpu/dpu-plane.c b/drivers/gpu/drm/imx/dpu/dpu-plane.c
index 0a62b003d4733a9dd83259cd2dc1bce8cafaf388..c14f9db57c7e4bc08ab240551ea06e1ef51497bb 100644
--- a/drivers/gpu/drm/imx/dpu/dpu-plane.c
+++ b/drivers/gpu/drm/imx/dpu/dpu-plane.c
@@ -988,8 +988,10 @@ struct dpu_plane *dpu_plane_init(struct drm_device *drm,
 		ret = -EINVAL;
 	}
 
-	if (ret)
+	if (ret) {
+		kfree(dpu_plane);
 		return ERR_PTR(ret);
+	}
 
 	return dpu_plane;
 }