Patch "drm/armada: fix leak of crtc structure" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
drm/armada: fix leak of crtc structure
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-armada-fix-leak-of-crtc-structure.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Fri Feb 23 11:58:50 CET 2018
From: Russell King <[email protected]>
Date: Fri, 8 Dec 2017 12:16:22 +0000
Subject: drm/armada: fix leak of crtc structure
From: Russell King <[email protected]>
[ Upstream commit 33cd3c07a976e11c3c4cc6b0b3db6760ad1590c5 ]
Fix the leak of the CRTC structure in the failure paths of armada_drm_crtc_create().
--- drivers/gpu/drm/armada/armada_crtc.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-)
drivers/gpu/drm/armada/armada_crtc.c +13 -12
@@ -1182,17 +1182,13 @@ static int armada_drm_crtc_create(struct ret =devm_request_irq (dev, irq, armada_drm_irq,0 ,"armada_drm_crtc" , dcrtc); -if (ret <0 ) { -kfree (dcrtc); -return ret; - } +if (ret <0 ) + goto err_crtc;if (dcrtc->variant->init) { ret = dcrtc->variant->init (dcrtc, dev); -if (ret) { -kfree (dcrtc); -return ret; - } +if (ret) + goto err_crtc; }/* Ensure AXI pipeline is enabled */
@@ -1203,13 +1199,15 @@ static int armada_drm_crtc_create(struct dcrtc->crtc.port = port; primary =kzalloc (sizeof (*primary),GFP_KERNEL ); -if (!primary) -return -ENOMEM ; +if (!primary) { + ret = -ENOMEM ; + goto err_crtc; + } ret =armada_drm_plane_init (primary);if (ret) {kfree (primary); -return ret; + goto err_crtc; } ret = drm_universal_plane_init(drm, &primary->base, 0,
@@ -1219,7 +1217,7 @@ static int armada_drm_crtc_create(struct DRM_PLANE_TYPE_PRIMARY);if (ret) {kfree (primary); -return ret; + goto err_crtc; } ret = drm_crtc_init_with_planes(drm, &dcrtc->crtc, &primary->base, NULL,
@@ -1238,6 +1236,9 @@ static int armada_drm_crtc_create(struct err_crtc_init: primary->base.funcs->destroy (&primary->base); +err_crtc: +kfree (dcrtc); +return ret; }
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/drm-armada-fix-leak-of-crtc-structure.patch