From patchwork Wed Jun 1 13:11:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miaoqian Lin X-Patchwork-Id: 12866896 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C5D45C433EF for ; Wed, 1 Jun 2022 13:12:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=tsefJp8i9YxBwL0pxo9fkNwEQCebKqxxJd7EXA6pkXM=; b=prt5jxjVSNKXAE m1ZMuJAJTOVXh90HK2B9wqdEkfN3Mi0JrlI8C4gPHIwlpz9gWji6agtYFz7cJN96powLop+egVfR5 8j6+N2sipSP4qHti4K6APQzibac/Pyc8ZGcWMP6zp5J64y/hd1oUlwpB39gGRytaS5KmTNoYSAkUr GrGpvX8J/MR3o7zx7Jq35FSAOO5YCcgW/d0zlsjuBdcd/d5VOoQkVWu4Eu6pLr5nMthDCU+VyMEBj StKkjVtUEZhN6u+IYJaDe/HihPfMahUx5R8V097V8bhZFjWtZS1II11O0qMhrD0TQKhqTxb7Wwx+d h4tiwkWtDwQcFcB/e3bw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nwO8D-00GCCe-3B; Wed, 01 Jun 2022 13:11:25 +0000 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nwO86-00GCBy-NS for linux-arm-kernel@lists.infradead.org; Wed, 01 Jun 2022 13:11:24 +0000 Received: by mail-pl1-x62c.google.com with SMTP id s12so1806774plp.0 for ; Wed, 01 Jun 2022 06:11:16 -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:mime-version :content-transfer-encoding; bh=F5AH1U5SHVaxYK5U6wHZI+Uf8T98VsEerOgnBwZfGkY=; b=EpxDjcS2RtaVPEIL1O7MH8Fxfp1XUV05k/MHV3xIY/cvhJPTlS11OnBx6jymbxzO5q 7+B1tF07vGxCCrKoyNw0Zz67BWtpT+SLqzm+gzCmTVZ8F9iLgwgmgqGo9qgdVqTwKeOH F5o9kx/dsC+k8w+dwSgWYUSUHYrIMCA2SDNiatPRim9X/0u8HlsrCchloeiTZREAy9cs Mg4R2gdSjJxVmZL27P92S26ncG4XgWJ3Fimq6YJUJPZoPV7O5vg3wSjT1gSOWAtr92iB 4ILlyGZCMyy/sSgaXAreCLGheGep9d4s68G9Y4tadj28m1irbmyTVBHSIz+ByXTj4ocg /Dlw== 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:mime-version :content-transfer-encoding; bh=F5AH1U5SHVaxYK5U6wHZI+Uf8T98VsEerOgnBwZfGkY=; b=UAk2/YbW9vOhsbkmZXSKlVYs366kQXnvmakIzu7YZ9OuLWLCOpmkrq51edcum7nlDi vF9hB8NyfpCcGv0qAo1wrwmysfPoi6gSCGp+fuYoLwYia9M1/DTvhKXQxLgmkZLDW7th w2FIPd/JWNR+LhujxwAa/8d/YyLW1MKNBeHMEWxDV8+Ue7pJv5+NW4WPg+0qLzUyUouy WwNccaghb2cb/7KXpLQQKzxAt/PGMYTS9qPLjrifvswxf4rdVyEtAnm65loKjeEoptj0 LpD6pp22q4MjoA75gGb4SdK5y1JeUDQxUKf75YWQuz1QJ7fWjDE12yfEF6qnmQETo8yq iXpg== X-Gm-Message-State: AOAM5334pPpdLiPIapCIKxcf9OFV13aIrUVIT3QHVhV4TlY7Ez8TAEO8 PIETxM00ZTU3lBJyZ+u3Kss= X-Google-Smtp-Source: ABdhPJynog34wOL325DVkpBKhAu32exXyCxMUiCFCtcQ7QP9ZOrSBHoR6U9gj57/QtV+cI3GseFmAQ== X-Received: by 2002:a17:902:c2d2:b0:166:303b:56ec with SMTP id c18-20020a170902c2d200b00166303b56ecmr1710581pla.83.1654089076345; Wed, 01 Jun 2022 06:11:16 -0700 (PDT) Received: from localhost.localdomain ([202.120.234.246]) by smtp.googlemail.com with ESMTPSA id gd20-20020a17090b0fd400b001d954837197sm3862654pjb.22.2022.06.01.06.11.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jun 2022 06:11:15 -0700 (PDT) From: Miaoqian Lin To: Mark Rutland , Lorenzo Pieralisi , Thierry Reding , Arnd Bergmann , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: linmq006@gmail.com Subject: [PATCH] psci: Fix refcount leak in psci_dt_init Date: Wed, 1 Jun 2022 17:11:07 +0400 Message-Id: <20220601131107.18743-1-linmq006@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220601_061118_803812_347D508C X-CRM114-Status: GOOD ( 13.23 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org of_find_matching_node_and_match() returns a node pointer with refcount incremented, we should use of_node_put() on it when not need anymore. When of_device_is_available() fails, call of_node_put() to release the refcount. And of_node_put() will checks NULL pointer. Fixes: d09a0011ec0d ("drivers: psci: Allow PSCI node to be disabled") Signed-off-by: Miaoqian Lin --- drivers/firmware/psci/psci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c index cfb448eabdaa..ec888aba57ff 100644 --- a/drivers/firmware/psci/psci.c +++ b/drivers/firmware/psci/psci.c @@ -619,8 +619,10 @@ int __init psci_dt_init(void) np = of_find_matching_node_and_match(NULL, psci_of_match, &matched_np); - if (!np || !of_device_is_available(np)) + if (!np || !of_device_is_available(np)) { + of_node_put(np); return -ENODEV; + } init_fn = (psci_initcall_t)matched_np->data; ret = init_fn(np);