You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
drm/fsl-dcu: avoid memory leak on errors
Improve error handling during CRTC initialization. Especially avoid memory leaks in the primary plane initialization error path. Signed-off-by: Stefan Agner <stefan@agner.ch>
This commit is contained in:
@@ -143,10 +143,15 @@ int fsl_dcu_drm_crtc_create(struct fsl_dcu_drm_device *fsl_dev)
|
||||
int ret;
|
||||
|
||||
primary = fsl_dcu_drm_primary_create_plane(fsl_dev->drm);
|
||||
if (!primary)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = drm_crtc_init_with_planes(fsl_dev->drm, crtc, primary, NULL,
|
||||
&fsl_dcu_drm_crtc_funcs, NULL);
|
||||
if (ret < 0)
|
||||
if (ret) {
|
||||
primary->funcs->destroy(primary);
|
||||
return ret;
|
||||
}
|
||||
|
||||
drm_crtc_helper_add(crtc, &fsl_dcu_drm_crtc_helper_funcs);
|
||||
|
||||
|
||||
@@ -187,6 +187,7 @@ static const struct drm_plane_helper_funcs fsl_dcu_drm_plane_helper_funcs = {
|
||||
static void fsl_dcu_drm_plane_destroy(struct drm_plane *plane)
|
||||
{
|
||||
drm_plane_cleanup(plane);
|
||||
kfree(plane);
|
||||
}
|
||||
|
||||
static const struct drm_plane_funcs fsl_dcu_drm_plane_funcs = {
|
||||
|
||||
Reference in New Issue
Block a user