From nobody Thu Apr 30 09:44:03 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4DA72C433EF for ; Wed, 1 Jun 2022 03:40:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349459AbiFADkH (ORCPT ); Tue, 31 May 2022 23:40:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33198 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349476AbiFADj6 (ORCPT ); Tue, 31 May 2022 23:39:58 -0400 Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com [IPv6:2607:f8b0:4864:20::432]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1051C9CCA0 for ; Tue, 31 May 2022 20:39:57 -0700 (PDT) Received: by mail-pf1-x432.google.com with SMTP id u2so784308pfc.2 for ; Tue, 31 May 2022 20:39:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NAOtSJQ0e7lMXAVSUZPZ1qHrCN9pnSWlg6iMnewBSfg=; b=I7Rwzn599nYSXO0ehdauIMZ913hZwSg4hgdHDi4NFjycN3mkFHslQfzGP5zMCMJhTw ZY2WxucR6T2h6FsWNtPsI+jPqEoMN47gW8e61OElRxQgKXqx3TIKQmYq6PR8lQoSH2Gc swltfB8cc+I7C5uI3Vnj5qIR8ImmocRWCNiBmmb2YI+E0F0IBalWIZxWH18tHjneVFuI bK0s9Zwy2llZfvWj4W35wOZywZ0mnDqhFYdDQqNPc2PmFWMR9DYnqznYEpYgquej7kBX 5Nntt+BmHjK2A6gqupFV4Tl/IW4m6W8WNyDc3JGafp9DcNENPxWPSX4WRZO7Ynm1K7km J6wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NAOtSJQ0e7lMXAVSUZPZ1qHrCN9pnSWlg6iMnewBSfg=; b=tPRmMTrUbwJ/SjR8d++9ZrVqw5YXeJtpS7YNNeq7gIkSqpryM75NPWD0V4yHO1YLrm Y05fatlIcPio4rsBhQT0X4XrIqnqAj8DEEuxFgLsdS0ZIabzgAUJiDxZ5OwS337rhq0Q hqOhhi/whO5fIbbDhiitR3pEMjzQB0PVMyzukufyx3n2ckHJ/oYlN/imU3Z2Qx717M8l UrzAQwD9r8Ld6Dunx2Pm/zHmSgzIi57gXpyVO02O5b0YtuM9wgq09ElCy0hEnkS69rOg ehNEUV43kmdn3neO1qCfqBlskRbkU3sMUjGXQ7aLQ1w9WZ2PBvdlbOlGpRLu3B5aX+Xx cLow== X-Gm-Message-State: AOAM531ezvqjQIiJHrAMErlYnt+jpWgJ5VJDr90xv2kAPGo0akqtbJ6X 9ir+26E+EbHuov62IOzK0Og= X-Google-Smtp-Source: ABdhPJw7vYFqNAuZ0ZS77DemhLpZ6cPkQti7TbLMdDwMmA1GStvhzPaixJeC7e2jd+/eSbyBBi8jlg== X-Received: by 2002:a05:6a00:1946:b0:4fe:309f:d612 with SMTP id s6-20020a056a00194600b004fe309fd612mr65087189pfk.10.1654054796300; Tue, 31 May 2022 20:39:56 -0700 (PDT) Received: from localhost.localdomain ([202.120.234.246]) by smtp.googlemail.com with ESMTPSA id dw15-20020a17090b094f00b001e0b971196csm2732415pjb.57.2022.05.31.20.39.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 May 2022 20:39:56 -0700 (PDT) From: Miaoqian Lin To: Neil Armstrong , David Airlie , Daniel Vetter , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Sam Ravnborg , dri-devel@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Miaoqian Lin Subject: [PATCH v2 1/2] drm/meson: encoder_cvbs: Fix refcount leak in meson_encoder_cvbs_init Date: Wed, 1 Jun 2022 07:39:26 +0400 Message-Id: <20220601033927.47814-2-linmq006@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220601033927.47814-1-linmq006@gmail.com> References: <20220601033927.47814-1-linmq006@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" of_graph_get_remote_node() returns remote device nodepointer with refcount incremented, we should use of_node_put() on it when done. Add missing of_node_put() to avoid refcount leak. Fixes: 318ba02cd8a8 ("drm/meson: encoder_cvbs: switch to bridge with ATTACH= _NO_CONNECTOR") Signed-off-by: Miaoqian Lin Reviewed-by: Martin Blumenstingl --- drivers/gpu/drm/meson/meson_encoder_cvbs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/meson/meson_encoder_cvbs.c b/drivers/gpu/drm/m= eson/meson_encoder_cvbs.c index fd8db97ba8ba..8110a6e39320 100644 --- a/drivers/gpu/drm/meson/meson_encoder_cvbs.c +++ b/drivers/gpu/drm/meson/meson_encoder_cvbs.c @@ -238,6 +238,7 @@ int meson_encoder_cvbs_init(struct meson_drm *priv) } =20 meson_encoder_cvbs->next_bridge =3D of_drm_find_bridge(remote); + of_node_put(remote); if (!meson_encoder_cvbs->next_bridge) { dev_err(priv->dev, "Failed to find CVBS Connector bridge\n"); return -EPROBE_DEFER; --=20 2.25.1 From nobody Thu Apr 30 09:44:03 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 07528C433EF for ; Wed, 1 Jun 2022 03:40:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349468AbiFADkQ (ORCPT ); Tue, 31 May 2022 23:40:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349462AbiFADkL (ORCPT ); Tue, 31 May 2022 23:40:11 -0400 Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2A02F694B5 for ; Tue, 31 May 2022 20:40:09 -0700 (PDT) Received: by mail-pg1-x531.google.com with SMTP id g184so712148pgc.1 for ; Tue, 31 May 2022 20:40:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5mfO6LDCxvPgKYka8jk5OyHXRXc0q1t4jWcU47/N1fE=; b=ZmjqddQ3/TmHRhoFCiYRGDBVmexjqsYn/xpzktYFjtQbhCliZhc2Fo2Kem/7VqXdet wx8ZN9pcaCrJxBj1ICSqf3hm2Cha9vh+PIIqXQW2OT6+hpSYeQMEyBbj1abdvp7DP1Uv yKuIprZ6YV1f1nI+39tAs0URrBpNXauRUL+iDRG5idR/R0qx2BuRQqWl9VlJdp8Owv6r zgesTyoa4BjdC03XSI8eIyz5MVoJQzWPoQjc/So+mLQYHV2OzND0AYd+7x1YGPB3GwBD bT2QosR2IrQjlurZrVmpVWpicmDeb8q3UuSrAbzp2KdHFcTwPPrpbYwZL8FiYG25fu3n +53w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5mfO6LDCxvPgKYka8jk5OyHXRXc0q1t4jWcU47/N1fE=; b=GYkhxUmziYpZbUJdNDIeOniU5r/fS6lZB+DAbmZDfwReLST0bMk62SA3Tq7Oc76ni9 we/CNB46J4c4Xci7zBIpFYNXuOU3HidjO9e+29PSd7CpipglWPot9nS/7AhWBMZYavwZ EOKjInwcDEr0t2Y1AAAqM5wL1HynxFzZ24YGgPUSgpy2kOpY36+do4E4PvsiHtsQbq1c Tvb53WWpOjS+lda6idK8Qz8i7RMvhUmfzCIE0uDGrGg0A5iaQCTH4gEh0ulrctT+k4Wp f3pPSo5yrVXRQ+hYvoSzyP7pt+9vSCRjNv/Lu5bmq+glEBPPdO3Y8reFaWp1FCfHp93O +oNA== X-Gm-Message-State: AOAM531xzI923NoyyvXlp8+r8cmS5tWk14QauOEFu829k2PzgefCx6cV 61HAw7kFcDjTpSuxiyFFvio= X-Google-Smtp-Source: ABdhPJycr/phEanwFwmpfw4hc6pHiRMgRyg56Yj4FnBPh+sXAB7aZxKJJxZAr5MysBkhTPDTMd6V+w== X-Received: by 2002:a63:6901:0:b0:3f9:caa5:cffc with SMTP id e1-20020a636901000000b003f9caa5cffcmr47846682pgc.324.1654054808681; Tue, 31 May 2022 20:40:08 -0700 (PDT) Received: from localhost.localdomain ([202.120.234.246]) by smtp.googlemail.com with ESMTPSA id dw15-20020a17090b094f00b001e0b971196csm2732415pjb.57.2022.05.31.20.40.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 May 2022 20:40:08 -0700 (PDT) From: Miaoqian Lin To: Neil Armstrong , David Airlie , Daniel Vetter , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Sam Ravnborg , dri-devel@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Miaoqian Lin Subject: [PATCH v2 2/2] drm/meson: encoder_hdmi: Fix refcount leak in meson_encoder_hdmi_init Date: Wed, 1 Jun 2022 07:39:27 +0400 Message-Id: <20220601033927.47814-3-linmq006@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220601033927.47814-1-linmq006@gmail.com> References: <20220601033927.47814-1-linmq006@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" of_graph_get_remote_node() returns remote device nodepointer with refcount incremented, we should use of_node_put() on it when done. Add missing of_node_put() to avoid refcount leak. Fixes: e67f6037ae1b ("drm/meson: split out encoder from meson_dw_hdmi") Signed-off-by: Miaoqian Lin Reviewed-by: Martin Blumenstingl --- changes in v2: - call of_node_put() after of_find_device_by_node() and error paths before of_find_device_by_node(); --- drivers/gpu/drm/meson/meson_encoder_hdmi.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/m= eson/meson_encoder_hdmi.c index 5e306de6f485..0d532e8e8cca 100644 --- a/drivers/gpu/drm/meson/meson_encoder_hdmi.c +++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.c @@ -365,7 +365,8 @@ int meson_encoder_hdmi_init(struct meson_drm *priv) meson_encoder_hdmi->next_bridge =3D of_drm_find_bridge(remote); if (!meson_encoder_hdmi->next_bridge) { dev_err(priv->dev, "Failed to find HDMI transceiver bridge\n"); - return -EPROBE_DEFER; + ret =3D -EPROBE_DEFER; + goto err_put_node; } =20 /* HDMI Encoder Bridge */ @@ -383,7 +384,7 @@ int meson_encoder_hdmi_init(struct meson_drm *priv) DRM_MODE_ENCODER_TMDS); if (ret) { dev_err(priv->dev, "Failed to init HDMI encoder: %d\n", ret); - return ret; + goto err_put_node; } =20 meson_encoder_hdmi->encoder.possible_crtcs =3D BIT(0); @@ -393,7 +394,7 @@ int meson_encoder_hdmi_init(struct meson_drm *priv) DRM_BRIDGE_ATTACH_NO_CONNECTOR); if (ret) { dev_err(priv->dev, "Failed to attach bridge: %d\n", ret); - return ret; + goto err_put_node; } =20 /* Initialize & attach Bridge Connector */ @@ -401,7 +402,8 @@ int meson_encoder_hdmi_init(struct meson_drm *priv) &meson_encoder_hdmi->encoder); if (IS_ERR(meson_encoder_hdmi->connector)) { dev_err(priv->dev, "Unable to create HDMI bridge connector\n"); - return PTR_ERR(meson_encoder_hdmi->connector); + ret =3D PTR_ERR(meson_encoder_hdmi->connector); + goto err_put_node; } drm_connector_attach_encoder(meson_encoder_hdmi->connector, &meson_encoder_hdmi->encoder); @@ -428,6 +430,7 @@ int meson_encoder_hdmi_init(struct meson_drm *priv) meson_encoder_hdmi->connector->ycbcr_420_allowed =3D true; =20 pdev =3D of_find_device_by_node(remote); + of_node_put(remote); if (pdev) { struct cec_connector_info conn_info; struct cec_notifier *notifier; @@ -444,4 +447,8 @@ int meson_encoder_hdmi_init(struct meson_drm *priv) dev_dbg(priv->dev, "HDMI encoder initialized\n"); =20 return 0; + +err_put_node: + of_node_put(remote); + return ret; } --=20 2.25.1