From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0BFFA3F0A85 for ; Tue, 9 Jun 2026 09:52:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780998763; cv=none; b=FBs/mzy7B4oYXPCps+POxr+1aUHEuVazziFLACljmKH00TNSHoIAY8FcCPVoHKY8CywhF1DlGINCky8vJ/ly8XDnZQOCD9yBeOT88/+9aXhqttMWpXmLOnYsVJVmPSylIOUvL91sfOJNNjs/58M2C0XBpl9ylLO94LhEDrUJOAs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780998763; c=relaxed/simple; bh=hQnkN/hywsdMhI6SFtfWDuH/kDNrGdOpFCY60EQjxhw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W12NJKRlDyCbzAYzIaRRP5MK2QhiMfC/twKj2wOSFCxQTEEuiV4+WVS+cXDIHfpgZC5rJiPPU2tONrJPwhB5fm43b0HIkf90ffNsJB4slC/Ue/EqK/ZlmZ84EDaCMW2Tn1yWNtonMB8dDyyzJvTvkVJWDUOz5LiT7KZ70R4uG68= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=f2JywiA+; arc=none smtp.client-ip=209.85.215.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="f2JywiA+" Received: by mail-pg1-f172.google.com with SMTP id 41be03b00d2f7-c8585c51f1fso2572395a12.1 for ; Tue, 09 Jun 2026 02:52:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780998761; x=1781603561; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Atlbwdb5r6O9CLVUIxIon+j2XEv/nqOX8bGypd9DhqI=; b=f2JywiA+CVF6PqjYgvlgDL1WfA5182lWDH/DG5IEpjY1hKyQYdp7wHpZZ7dGJsZJDN eFTfbxRK67nEUTKp4fE6TIXC6PF1peSENjZj9wO9y2kgcsl5s9z/ynsGMqBD0fvyPm0R 5HlGu30VJsE6Gym5ArbaImib97Bu9t9CfzGJvZxFH21Tr6BuRiQQL4uAOPbt1ZcH2v83 FdDMDLuWT+WRsBubV3Ptz9HZDMAkbyO/+f2wbd+LkcOZME4yvgMGiJMNkEUhxLFTYOhW u30USnEVEJh8wrkNZ7CN6qxy5q/pbB71e60SVZCkAAweOH6sY5o98H9gDGksPo75O+ru 2RXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780998761; x=1781603561; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Atlbwdb5r6O9CLVUIxIon+j2XEv/nqOX8bGypd9DhqI=; b=QDClPVeXTdNlpOZ5XZhl6trsZZY3WLs1w5qub7CcV2jLLwYfFgxMaf13Yu7crxsnzj j9CSGDlm3T2Z3opuu+bmX77Z3KmzYSibWvyChBpjZpOeNddFxoneugWxvk9zCUzD6zk6 hRaoQlSTMVjDxb7+X9vuRVz0snFO/1TCyX/B0U6cYTubDi+hiQnhO5M3auEB/u0XCLCL i3eIVWChDw2hnCxvjctlD/tcl4Pp/LRHLhYPvr0f9A+zcRKhBhVWK1J+xLE/imKnaMoy Hy5H2r3C/KbTsYST5UdhWv8S8E8VCFDpWgm+0BQYUhSN/yhBLft6xutxUJzPrGde29zO YqAQ== X-Forwarded-Encrypted: i=1; AFNElJ/iuKom2oFuCuS17kqAezJc6ID+dZFAkVzo3uSXgZY9T1BSYzN9LYZUNL/XgpYL4IturnXKeOgRg7ei24g=@vger.kernel.org X-Gm-Message-State: AOJu0YzheexhWpUK6ewstr6r82CCKSjBM6CdEZRL+pOW0ua71fdA0Ig0 lcjQ9XNlYpRS0w2cXmjwjYuDhAcNUZx7Tp4x6HYqEeoGm20RNSrlizdHJC2tNE94 X-Gm-Gg: Acq92OGRouiu5zRZdygFbwle81OXU0J8JzB7ra0YAFr8nR6x9+bkZozsOWjcrsqsOsE G6N8gfZOpB8VEc5dmPBO8mE2JwGlH9/Fc1Gf6YQ6m6YqBK1yzNMaXHHDnhcaRGpa9MTky9k8lse g2V/lJQAicw79qloSMKafQpYYSnY+pAvLEnyEe6uHVogwDM5eIN9ipMKPlTGOc1IoPL1+ALtKTY YMaTbrKhNSt2Hc7CTZMHfp3XsFUJbgenNk6TPkXdy+6PICj5bNaj6njaj8SxZS7EgZEnNIRSVKB cBf1vZ1ijdej8B9wgt/T7OTMWSXDNiyDJ5ZTmGDw5lWUTn/suRwtgBPB3EyypJohxm7HiUxJCmZ iMwm+KzcqUiAV8JDIZ4dm1AlcsKxCdgQZ+OTNQKMrsCn0XFhdo+Sz5RLqUp3MfN/16st4e1in7h 5IbnMozXSXnGbOVwCWSosC6LDPIhgh5YZNn8rHMNB1Oeqsu1Io9JgMJqlftz8Qx1BeYNnSlCKGy eXz0bdbWOaFrbJcmarg+NueG+YzsXQlcmMD2ecbn7nbrLz2jonBoA== X-Received: by 2002:a17:90a:c88e:b0:35a:10b6:1208 with SMTP id 98e67ed59e1d1-37132b9aaebmr15941311a91.14.1780998761313; Tue, 09 Jun 2026 02:52:41 -0700 (PDT) Received: from localhost.localdomain (n49-176-80-106.mas22.nsw.optusnet.com.au. [49.176.80.106]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3713346cd9fsm13185172a91.2.2026.06.09.02.52.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 02:52:40 -0700 (PDT) From: geoffrey To: Krzysztof Kozlowski Cc: Alim Akhtar , Marek Szyprowski , Tomasz Figa , linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Weigang He Subject: [PATCH 1/2] soc: samsung: exynos-pmu: fix of_node refcount leak in exynos_get_pmu_regmap() Date: Tue, 9 Jun 2026 19:52:23 +1000 Message-ID: <20260609095224.1706036-2-geoffreyhe2@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260609095224.1706036-1-geoffreyhe2@gmail.com> References: <20260609095224.1706036-1-geoffreyhe2@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Weigang He exynos_get_pmu_regmap() obtains a device_node via of_find_matching_node() and passes it to exynos_get_pmu_regmap_by_phandle(np, NULL). With propname == NULL the callee uses np directly and only drops a reference when propname is set, so the reference taken by of_find_matching_node() is leaked on every call -- including on each -EPROBE_DEFER retry of the only in-tree caller, exynos_retention_init() in the Exynos pinctrl driver. Drop the reference in the function that acquired it. Found by static analysis tool CodeQL. Fixes: 76640b84bd7a ("soc: samsung: pmu: Provide global function to get PMU regmap") Signed-off-by: Weigang He --- drivers/soc/samsung/exynos-pmu.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/soc/samsung/exynos-pmu.c b/drivers/soc/samsung/exynos-pmu.c index d58376c38179b..a5da2741852b4 100644 --- a/drivers/soc/samsung/exynos-pmu.c +++ b/drivers/soc/samsung/exynos-pmu.c @@ -167,11 +167,17 @@ static const struct mfd_cell exynos_pmu_devs[] = { */ struct regmap *exynos_get_pmu_regmap(void) { - struct device_node *np = of_find_matching_node(NULL, - exynos_pmu_of_device_ids); - if (np) - return exynos_get_pmu_regmap_by_phandle(np, NULL); - return ERR_PTR(-ENODEV); + struct device_node *np; + struct regmap *regmap; + + np = of_find_matching_node(NULL, exynos_pmu_of_device_ids); + if (!np) + return ERR_PTR(-ENODEV); + + regmap = exynos_get_pmu_regmap_by_phandle(np, NULL); + of_node_put(np); + + return regmap; } EXPORT_SYMBOL_GPL(exynos_get_pmu_regmap); -- 2.43.0