Received: by 2002:a19:771d:0:0:0:0:0 with SMTP id s29csp1280006lfc; Wed, 1 Jun 2022 14:03:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwquRp3SJpti2+/GYzIqEX2CMHZ15jAwPV2WjuVKx4FyCvboxyX0bdwmpliE1R0+iiidgzP X-Received: by 2002:a17:902:a985:b0:163:8ca2:2b8c with SMTP id bh5-20020a170902a98500b001638ca22b8cmr1367719plb.74.1654117402407; Wed, 01 Jun 2022 14:03:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654117402; cv=none; d=google.com; s=arc-20160816; b=Mh0AVLTiWhErOZkoCe1pV1k8YZG8GOhTCQlixoYJamuZcWCAGLFBYGeYXxIey1c7a/ UMuTJ4Mq4R72iY6+LcCxqfW37luF/MrIEB1SEIQk+ylOwPipbWwrVa3Z8AXSdjYSsQ0P yCMTIEG4FoPP/LH/H59eZZqJwclb4I0ZzNGULqinLAExoloWVtW3b5rC6KnZNT2QO3Bn wNdlQb+vHYNAzAQmIcf4v30A6JQKLv46ydPhwng+gPUg/zPju9dLEsBeJak9Ef/808vp N7OVQN2KzhNqXuLaShVOM3Rh5oOJwS35ZheDDvbuY6SzvB++KyICv41qpBJjMPW3+gTJ J+Dg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=F5AH1U5SHVaxYK5U6wHZI+Uf8T98VsEerOgnBwZfGkY=; b=c3aqqf0h4TF8TtH6NL50bs+VkRaNXN7Qhu+Em/aNr3tzbQ9bTitVo+KcbSC76JHJMF MzBODaR9ujGC+rTdbYa0J4WnQ3Lmfi93LrjGRdccm9u+pUb/nb4bNVhK3GL0495zWY/K JY0Ri/2tNf0Gpfi4fwmlk3/4cOEgJiMrIjy9kUOV3ztvE4bNL53goMXDKzQgV08p75Y7 E297PG2ecLuRzTYDaG/2cUIRAZDkQga7zOfndU6j1Z3n8AUykAu4r9RjjRHys+p8lXI+ VGua7MC1cYAtDw5Uz0/D5HcyO8I8e37nSnjhsjtX3qdiqC+OZ9KwTo4egnrtYcrnGXpx Ns9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=EpxDjcS2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id j62-20020a638041000000b003d82053da65si3437136pgd.501.2022.06.01.14.03.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jun 2022 14:03:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=EpxDjcS2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 89D752E6430; Wed, 1 Jun 2022 13:08:52 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353127AbiFANLX (ORCPT + 99 others); Wed, 1 Jun 2022 09:11:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56710 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236589AbiFANLV (ORCPT ); Wed, 1 Jun 2022 09:11:21 -0400 Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com [IPv6:2607:f8b0:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 30EB26325 for ; Wed, 1 Jun 2022 06:11:16 -0700 (PDT) Received: by mail-pl1-x62a.google.com with SMTP id w3so1732316plp.13 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=60N7pByuvo4Jp6hTWMo4V9EQLoK/5SCPd/m4jERAMFoPQoSjsFyCgZoPPc8mqnPo9q KXDeAvnFsFkD7S4u2KGRtahcCDUxZdZ7G1JqZckpXV8E2We632oYmTqf02Cd82NJQTbd q8dmPFMhf+X6BYSg2CfWz2A+eb2xlpekEmFvMILSTs5Ywyr9cxED88G16xFou79gbbdX ipdwCd94dXl1r1xlorq+jQXRWftzTbGIhgbn/GKkOMI9jpClSqh/49bQBL2YGoDWMvZB +aqQCWdKQvGIGgdkwk60pQuYHnGsSEef5yYYfgo0B90OCT1dnqeHwUzdmBYPKacRGDAk 9Plg== X-Gm-Message-State: AOAM53180XYnyFN1vck1Ax7L1VE/qab1o8VSuQcxvp/YyWeOw58rsUx+ HjIpcucWkZXOL7yUDxPAp6o= 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 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.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); -- 2.25.1