From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0FF1FC43387 for ; Mon, 14 Jan 2019 14:34:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D49382087E for ; Mon, 14 Jan 2019 14:34:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="LM/Agwxv" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726592AbfANOeN (ORCPT ); Mon, 14 Jan 2019 09:34:13 -0500 Received: from perceval.ideasonboard.com ([213.167.242.64]:48106 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726515AbfANOeN (ORCPT ); Mon, 14 Jan 2019 09:34:13 -0500 Received: from [192.168.0.21] (cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 892CF530; Mon, 14 Jan 2019 15:34:09 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1547476449; bh=OCDfCwN5LkQQQWkDE4WjP/f3ekZEjYyuyjzjinYRlEg=; h=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From; b=LM/AgwxvGnoe515B5u9vYRU+JMzRll57DohxILVE8g50SuHEJyB/FUTUKmpp61PVE g+8fiqMZ49LC2Q/l8g9CX6GEpPCIZ8W2Jz0pd9C3IlhSx5BElTFzRLAe6TE1c+j9Ds 3gDsuaS4OYm3dpm6ie/2JPrBNa57UA5tHKo1cqvg= Reply-To: kieran.bingham+renesas@ideasonboard.com Subject: Re: [PATCH 1/3] drm: rcar-du: add missing of_node_put To: Julia Lawall , Laurent Pinchart Cc: kernel-janitors@vger.kernel.org, David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org References: <1547372691-28324-1-git-send-email-Julia.Lawall@lip6.fr> <1547372691-28324-2-git-send-email-Julia.Lawall@lip6.fr> From: Kieran Bingham Organization: Ideas on Board Message-ID: <78d7667d-f701-b908-9f24-0ee13be90947@ideasonboard.com> Date: Mon, 14 Jan 2019 14:34:06 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <1547372691-28324-2-git-send-email-Julia.Lawall@lip6.fr> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Julia, Thank you for the patch, On 13/01/2019 09:44, Julia Lawall wrote: > Add an of_node_put when the result of of_graph_get_remote_port_parent is > not available. > > The semantic match that finds this problem is as follows > (http://coccinelle.lip6.fr): > > // > @r exists@ > local idexpression e; > expression x; > @@ > e = of_graph_get_remote_port_parent(...); > ... when != x = e > when != true e == NULL > when != of_node_put(e) > when != of_fwnode_handle(e) > ( > return e; > | > *return ...; > ) > // > For this part at least: Reviewed-by: Kieran Bingham But a little discussion below: > Signed-off-by: Julia Lawall This does indeed look like a missing of_node_put() but I don't think it will be the only one in that code. It gets a bit tangled - and I think there's possibly another missing put on the error path of if (!encoder) { dev_warn(rcdu->dev, "no encoder found for endpoint %pOF, skipping\n", ep->local_node); return -ENODEV; } because that implies that no encoder was found, and thus - encoder = entity; was not executed, and the tail of that function calls: of_node_put(encoder); which would have been the final of_node_put(entity) I think that part could be considered separate to this patch, but it's also quite closely related. Either way - I think it needs a second pair of eyes to see if I'm not crazy :) Regards Kieran > > --- > drivers/gpu/drm/rcar-du/rcar_du_kms.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/rcar-du/rcar_du_kms.c > index 9c7007d..bc3fcb3 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_kms.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_kms.c > @@ -331,6 +331,7 @@ static int rcar_du_encoders_init_one(struct rcar_du_device *rcdu, > dev_dbg(rcdu->dev, > "connected entity %pOF is disabled, skipping\n", > entity); > + of_node_put(entity); > return -ENODEV; > } > > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kieran Bingham Date: Mon, 14 Jan 2019 14:34:06 +0000 Subject: Re: [PATCH 1/3] drm: rcar-du: add missing of_node_put Message-Id: <78d7667d-f701-b908-9f24-0ee13be90947@ideasonboard.com> List-Id: References: <1547372691-28324-1-git-send-email-Julia.Lawall@lip6.fr> <1547372691-28324-2-git-send-email-Julia.Lawall@lip6.fr> In-Reply-To: <1547372691-28324-2-git-send-email-Julia.Lawall@lip6.fr> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Julia Lawall , Laurent Pinchart Cc: David Airlie , kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org Hi Julia, Thank you for the patch, On 13/01/2019 09:44, Julia Lawall wrote: > Add an of_node_put when the result of of_graph_get_remote_port_parent is > not available. > > The semantic match that finds this problem is as follows > (http://coccinelle.lip6.fr): > > // > @r exists@ > local idexpression e; > expression x; > @@ > e = of_graph_get_remote_port_parent(...); > ... when != x = e > when != true e = NULL > when != of_node_put(e) > when != of_fwnode_handle(e) > ( > return e; > | > *return ...; > ) > // > For this part at least: Reviewed-by: Kieran Bingham But a little discussion below: > Signed-off-by: Julia Lawall This does indeed look like a missing of_node_put() but I don't think it will be the only one in that code. It gets a bit tangled - and I think there's possibly another missing put on the error path of if (!encoder) { dev_warn(rcdu->dev, "no encoder found for endpoint %pOF, skipping\n", ep->local_node); return -ENODEV; } because that implies that no encoder was found, and thus - encoder = entity; was not executed, and the tail of that function calls: of_node_put(encoder); which would have been the final of_node_put(entity) I think that part could be considered separate to this patch, but it's also quite closely related. Either way - I think it needs a second pair of eyes to see if I'm not crazy :) Regards Kieran > > --- > drivers/gpu/drm/rcar-du/rcar_du_kms.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/rcar-du/rcar_du_kms.c > index 9c7007d..bc3fcb3 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_kms.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_kms.c > @@ -331,6 +331,7 @@ static int rcar_du_encoders_init_one(struct rcar_du_device *rcdu, > dev_dbg(rcdu->dev, > "connected entity %pOF is disabled, skipping\n", > entity); > + of_node_put(entity); > return -ENODEV; > } > > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kieran Bingham Subject: Re: [PATCH 1/3] drm: rcar-du: add missing of_node_put Date: Mon, 14 Jan 2019 14:34:06 +0000 Message-ID: <78d7667d-f701-b908-9f24-0ee13be90947@ideasonboard.com> References: <1547372691-28324-1-git-send-email-Julia.Lawall@lip6.fr> <1547372691-28324-2-git-send-email-Julia.Lawall@lip6.fr> Reply-To: kieran.bingham+renesas@ideasonboard.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id ECF636E925 for ; Mon, 14 Jan 2019 14:34:11 +0000 (UTC) In-Reply-To: <1547372691-28324-2-git-send-email-Julia.Lawall@lip6.fr> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Julia Lawall , Laurent Pinchart Cc: David Airlie , kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org SGkgSnVsaWEsCgpUaGFuayB5b3UgZm9yIHRoZSBwYXRjaCwKCk9uIDEzLzAxLzIwMTkgMDk6NDQs IEp1bGlhIExhd2FsbCB3cm90ZToKPiBBZGQgYW4gb2Zfbm9kZV9wdXQgd2hlbiB0aGUgcmVzdWx0 IG9mIG9mX2dyYXBoX2dldF9yZW1vdGVfcG9ydF9wYXJlbnQgaXMKPiBub3QgYXZhaWxhYmxlLgo+ IAo+IFRoZSBzZW1hbnRpYyBtYXRjaCB0aGF0IGZpbmRzIHRoaXMgcHJvYmxlbSBpcyBhcyBmb2xs b3dzCj4gKGh0dHA6Ly9jb2NjaW5lbGxlLmxpcDYuZnIpOgo+IAo+IC8vIDxzbXBsPgo+IEByIGV4 aXN0c0AKPiBsb2NhbCBpZGV4cHJlc3Npb24gZTsKPiBleHByZXNzaW9uIHg7Cj4gQEAKPiBlID0g b2ZfZ3JhcGhfZ2V0X3JlbW90ZV9wb3J0X3BhcmVudCguLi4pOwo+IC4uLiB3aGVuICE9IHggPSBl Cj4gICAgIHdoZW4gIT0gdHJ1ZSBlID09IE5VTEwKPiAgICAgd2hlbiAhPSBvZl9ub2RlX3B1dChl KQo+ICAgICB3aGVuICE9IG9mX2Z3bm9kZV9oYW5kbGUoZSkKPiAoCj4gcmV0dXJuIGU7Cj4gfAo+ ICpyZXR1cm4gLi4uOwo+ICkKPiAvLyA8L3NtcGw+Cj4gCgpGb3IgdGhpcyBwYXJ0IGF0IGxlYXN0 OgoKUmV2aWV3ZWQtYnk6IEtpZXJhbiBCaW5naGFtIDxraWVyYW4uYmluZ2hhbStyZW5lc2FzQGlk ZWFzb25ib2FyZC5jb20+CgpCdXQgYSBsaXR0bGUgZGlzY3Vzc2lvbiBiZWxvdzoKCgo+IFNpZ25l ZC1vZmYtYnk6IEp1bGlhIExhd2FsbCA8SnVsaWEuTGF3YWxsQGxpcDYuZnI+CgpUaGlzIGRvZXMg aW5kZWVkIGxvb2sgbGlrZSBhIG1pc3Npbmcgb2Zfbm9kZV9wdXQoKSBidXQgSSBkb24ndCB0aGlu ayBpdAp3aWxsIGJlIHRoZSBvbmx5IG9uZSBpbiB0aGF0IGNvZGUuIEl0IGdldHMgYSBiaXQgdGFu Z2xlZCAtIGFuZCBJIHRoaW5rCnRoZXJlJ3MgcG9zc2libHkgYW5vdGhlciBtaXNzaW5nIHB1dCBv biB0aGUgZXJyb3IgcGF0aCBvZgoKICAgICAgICBpZiAoIWVuY29kZXIpIHsKICAgICAgICAgICAg ICAgIGRldl93YXJuKHJjZHUtPmRldiwKICAgICAgICAgICAgICAgICAgICAgICAgICJubyBlbmNv ZGVyIGZvdW5kIGZvciBlbmRwb2ludCAlcE9GLCBza2lwcGluZ1xuIiwKICAgICAgICAgICAgICAg ICAgICAgICAgIGVwLT5sb2NhbF9ub2RlKTsKICAgICAgICAgICAgICAgIHJldHVybiAtRU5PREVW OwogICAgICAgIH0KCmJlY2F1c2UgdGhhdCBpbXBsaWVzIHRoYXQgbm8gZW5jb2RlciB3YXMgZm91 bmQsIGFuZCB0aHVzIC0KICAgICAgICAgICAgICAgIGVuY29kZXIgPSBlbnRpdHk7Cgp3YXMgbm90 IGV4ZWN1dGVkLCBhbmQgdGhlIHRhaWwgb2YgdGhhdCBmdW5jdGlvbiBjYWxsczoKCiAgICAgICAg IG9mX25vZGVfcHV0KGVuY29kZXIpOwoKd2hpY2ggd291bGQgaGF2ZSBiZWVuIHRoZSBmaW5hbCBv Zl9ub2RlX3B1dChlbnRpdHkpCgoKSSB0aGluayB0aGF0IHBhcnQgY291bGQgYmUgY29uc2lkZXJl ZCBzZXBhcmF0ZSB0byB0aGlzIHBhdGNoLCBidXQgaXQncwphbHNvIHF1aXRlIGNsb3NlbHkgcmVs YXRlZC4gRWl0aGVyIHdheSAtIEkgdGhpbmsgaXQgbmVlZHMgYSBzZWNvbmQgcGFpcgpvZiBleWVz IHRvIHNlZSBpZiBJJ20gbm90IGNyYXp5IDopCgpSZWdhcmRzCgpLaWVyYW4KCj4gCj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfa21zLmMgfCAgICAxICsKPiAgMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yY2FyLWR1L3JjYXJfZHVfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1 X2ttcy5jCj4gaW5kZXggOWM3MDA3ZC4uYmMzZmNiMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmNhci1kdS9yY2FyX2R1X2ttcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JjYXIt ZHUvcmNhcl9kdV9rbXMuYwo+IEBAIC0zMzEsNiArMzMxLDcgQEAgc3RhdGljIGludCByY2FyX2R1 X2VuY29kZXJzX2luaXRfb25lKHN0cnVjdCByY2FyX2R1X2RldmljZSAqcmNkdSwKPiAgCQlkZXZf ZGJnKHJjZHUtPmRldiwKPiAgCQkJImNvbm5lY3RlZCBlbnRpdHkgJXBPRiBpcyBkaXNhYmxlZCwg c2tpcHBpbmdcbiIsCj4gIAkJCWVudGl0eSk7Cj4gKwkJb2Zfbm9kZV9wdXQoZW50aXR5KTsKPiAg CQlyZXR1cm4gLUVOT0RFVjsKPiAgCX0KPiAgCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK