Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp2116531imm; Tue, 10 Jul 2018 13:36:57 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfXkdZhsaSsb/1THKJHK6ENM20sPt7xzph8DbXkjVzhofhi3kfV10RQOmZmVjDKlzFuXg80 X-Received: by 2002:a17:902:1a2:: with SMTP id b31-v6mr25523451plb.279.1531255017528; Tue, 10 Jul 2018 13:36:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531255017; cv=none; d=google.com; s=arc-20160816; b=O2LpvYezlzrhTZ+LmhMGjdBSyzOGnd1bXImkclXrrZW+VbIKuQo9rGWArwHNO2CdB2 vKGC977lrfsz2hAgGdKFqwWkX01E8f8k23TNSnzYPTIFCA5wCoEXWmUi7rhd8fEPMnyu MHVDtOxyvOWDmd445ViTyIgHscHtdMAL46dbCXtVTP8KgAeXUNB+r+8K68aFJSnP2t7c U8F+Tjp/khi4gXUJleXgLkJAtnfkoeyCT7VE/saAToU/7FPDOJ3R1vTatSMlTAvWA3u3 5Op5BmcqtTT8scETJUz/RMxC1ShwJMlUxcOQwAHkS/8LPSpcuJpAIEMIp4d2H9ozvKEM VTuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=ktjQs3NYgUGPpIZXmJkz7fL4VndYGIcUCO/PLo/yVoY=; b=BTPfvbpWOwinD+JgcDjg61Q9Uvj5HYx23secZZP+j9nscKHNhI2EebhcjgxjbND2su oIsYGTcpMFxvV5PFaApJs8bvS+tA/i8y8V54P2UvRBPnDZbfbmxHdJhUbPNIqiLSojyA 9ZSqeSVWmQzlx4wfQJxyYNQKl2uh6+DCE4CFswe6M9K6hXb7NeGq5SwUXjWOje2rhhNW lc5uN3/5q/pM/kDjFaKrg/GrzBwsTFz8zmST0UhMEgGfS17dFDCwPBdCtEuMJJyoG7Fa pE9PrnuBPEuZ9CA82/bUjotk5zsy+BAkNjhLUrCbCpt5pcO+CsABL6dExY2szZCo+TkE /lTA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v8-v6si17297590plo.322.2018.07.10.13.36.42; Tue, 10 Jul 2018 13:36:57 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732927AbeGJUgX (ORCPT + 99 others); Tue, 10 Jul 2018 16:36:23 -0400 Received: from mailoutvs27.siol.net ([185.57.226.218]:47376 "EHLO mail.siol.net" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1732333AbeGJUgW (ORCPT ); Tue, 10 Jul 2018 16:36:22 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.siol.net (Zimbra) with ESMTP id 70567522727; Tue, 10 Jul 2018 22:35:38 +0200 (CEST) X-Virus-Scanned: amavisd-new at psrvmta12.zcs-production.pri Received: from mail.siol.net ([127.0.0.1]) by localhost (psrvmta12.zcs-production.pri [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id cYB90tZAqTPc; Tue, 10 Jul 2018 22:35:38 +0200 (CEST) Received: from mail.siol.net (localhost [127.0.0.1]) by mail.siol.net (Zimbra) with ESMTPS id F05F252272C; Tue, 10 Jul 2018 22:35:37 +0200 (CEST) Received: from localhost.localdomain (unknown [194.152.15.144]) (Authenticated sender: 031275009) by mail.siol.net (Zimbra) with ESMTPSA id 8912E522727; Tue, 10 Jul 2018 22:35:35 +0200 (CEST) From: Jernej Skrabec To: maxime.ripard@bootlin.com, wens@csie.org, robh+dt@kernel.org Cc: airlied@linux.ie, mark.rutland@arm.com, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com Subject: [PATCH v2 07/18] drm/sun4i: DW HDMI: Release nodes if error happens during CRTC search Date: Tue, 10 Jul 2018 22:35:00 +0200 Message-Id: <20180710203511.18454-8-jernej.skrabec@siol.net> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180710203511.18454-1-jernej.skrabec@siol.net> References: <20180710203511.18454-1-jernej.skrabec@siol.net> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If error happens in sun8i_dw_hdmi_find_possible_crtcs(), nodes are not released with of_node_put() before returning. Fix that by calling of_node_put() when necessary. While on it, clean up the code by using of_graph_get_remote_node() which also lowers number of cases where error handling has to be performed. Fixes: 57e23de02f48 ("drm/sun4i: DW HDMI: Expand algorithm for possible crtcs") Reviewed-by: Chen-Yu Tsai Signed-off-by: Jernej Skrabec --- drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c b/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c index 3459b9ec56c9..21dc9ebad0b4 100644 --- a/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c +++ b/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c @@ -53,22 +53,14 @@ static u32 sun8i_dw_hdmi_find_possible_crtcs(struct drm_device *drm, struct device_node *port, *ep, *remote, *remote_port; u32 crtcs = 0; - port = of_graph_get_port_by_id(node, 0); - if (!port) - return 0; - - ep = of_get_next_available_child(port, NULL); - if (!ep) - return 0; - - remote = of_graph_get_remote_port_parent(ep); + remote = of_graph_get_remote_node(node, 0, -1); if (!remote) return 0; if (sun8i_dw_hdmi_node_is_tcon_top(remote)) { port = of_graph_get_port_by_id(remote, 4); if (!port) - return 0; + goto crtcs_exit; for_each_child_of_node(port, ep) { remote_port = of_graph_get_remote_port(ep); @@ -81,6 +73,9 @@ static u32 sun8i_dw_hdmi_find_possible_crtcs(struct drm_device *drm, crtcs = drm_of_find_possible_crtcs(drm, node); } +crtcs_exit: + of_node_put(remote); + return crtcs; } -- 2.18.0