From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933788AbbKSCnc (ORCPT ); Wed, 18 Nov 2015 21:43:32 -0500 Received: from mail.kmu-office.ch ([178.209.48.109]:36941 "EHLO mail.kmu-office.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933452AbbKSCmU (ORCPT ); Wed, 18 Nov 2015 21:42:20 -0500 From: Stefan Agner To: airlied@linux.ie, daniel.vetter@ffwll.ch, jianwei.wang.chn@gmail.com Cc: alison.wang@freescale.com, mark.yao@rock-chips.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Stefan Agner Subject: [PATCH 3/7] drm/fsl-dcu: avoid memory leak on errors Date: Wed, 18 Nov 2015 18:42:46 -0800 Message-Id: <1447900970-15936-4-git-send-email-stefan@agner.ch> X-Mailer: git-send-email 2.6.2 In-Reply-To: <1447900970-15936-1-git-send-email-stefan@agner.ch> References: <1447900970-15936-1-git-send-email-stefan@agner.ch> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Improve error handling during CRTC initialization. Especially avoid memory leaks in the primary plane initialization error path. Signed-off-by: Stefan Agner --- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 7 ++++++- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c index adf9212..b2f56e4 100644 --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c @@ -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); - if (ret < 0) + if (ret) { + primary->funcs->destroy(primary); return ret; + } drm_crtc_helper_add(crtc, &fsl_dcu_drm_crtc_helper_funcs); diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c index 92e606a..1cb6295 100644 --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c @@ -184,6 +184,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 = { -- 2.6.2 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Agner Subject: [PATCH 3/7] drm/fsl-dcu: avoid memory leak on errors Date: Wed, 18 Nov 2015 18:42:46 -0800 Message-ID: <1447900970-15936-4-git-send-email-stefan@agner.ch> References: <1447900970-15936-1-git-send-email-stefan@agner.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kmu-office.ch (mail.kmu-office.ch [178.209.48.109]) by gabe.freedesktop.org (Postfix) with ESMTPS id AE9C16E890 for ; Wed, 18 Nov 2015 18:42:20 -0800 (PST) In-Reply-To: <1447900970-15936-1-git-send-email-stefan@agner.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: airlied@linux.ie, daniel.vetter@ffwll.ch, jianwei.wang.chn@gmail.com Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, alison.wang@freescale.com List-Id: dri-devel@lists.freedesktop.org SW1wcm92ZSBlcnJvciBoYW5kbGluZyBkdXJpbmcgQ1JUQyBpbml0aWFsaXphdGlvbi4gRXNwZWNp YWxseSBhdm9pZAptZW1vcnkgbGVha3MgaW4gdGhlIHByaW1hcnkgcGxhbmUgaW5pdGlhbGl6YXRp b24gZXJyb3IgcGF0aC4KClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBBZ25lciA8c3RlZmFuQGFnbmVy LmNoPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2NydGMuYyAgfCA3 ICsrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX3BsYW5lLmMgfCAx ICsKIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fY3J0Yy5jIGIvZHJp dmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fY3J0Yy5jCmluZGV4IGFkZjkyMTIuLmIy ZjU2ZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2Ny dGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9jcnRjLmMKQEAg LTE0MywxMCArMTQzLDE1IEBAIGludCBmc2xfZGN1X2RybV9jcnRjX2NyZWF0ZShzdHJ1Y3QgZnNs X2RjdV9kcm1fZGV2aWNlICpmc2xfZGV2KQogCWludCByZXQ7CiAKIAlwcmltYXJ5ID0gZnNsX2Rj dV9kcm1fcHJpbWFyeV9jcmVhdGVfcGxhbmUoZnNsX2Rldi0+ZHJtKTsKKwlpZiAoIXByaW1hcnkp CisJCXJldHVybiAtRU5PTUVNOworCiAJcmV0ID0gZHJtX2NydGNfaW5pdF93aXRoX3BsYW5lcyhm c2xfZGV2LT5kcm0sIGNydGMsIHByaW1hcnksIE5VTEwsCiAJCQkJCSZmc2xfZGN1X2RybV9jcnRj X2Z1bmNzKTsKLQlpZiAocmV0IDwgMCkKKwlpZiAocmV0KSB7CisJCXByaW1hcnktPmZ1bmNzLT5k ZXN0cm95KHByaW1hcnkpOwogCQlyZXR1cm4gcmV0OworCX0KIAogCWRybV9jcnRjX2hlbHBlcl9h ZGQoY3J0YywgJmZzbF9kY3VfZHJtX2NydGNfaGVscGVyX2Z1bmNzKTsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fcGxhbmUuYyBiL2RyaXZlcnMvZ3B1 L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX3BsYW5lLmMKaW5kZXggOTJlNjA2YS4uMWNiNjI5NSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fcGxhbmUuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9wbGFuZS5jCkBAIC0xODQs NiArMTg0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIGZz bF9kY3VfZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyA9IHsKIHN0YXRpYyB2b2lkIGZzbF9kY3VfZHJt X3BsYW5lX2Rlc3Ryb3koc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiB7CiAJZHJtX3BsYW5lX2Ns ZWFudXAocGxhbmUpOworCWtmcmVlKHBsYW5lKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBk cm1fcGxhbmVfZnVuY3MgZnNsX2RjdV9kcm1fcGxhbmVfZnVuY3MgPSB7Ci0tIAoyLjYuMgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK