From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (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 9D023199FAB for ; Wed, 15 Apr 2026 15:07:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776265672; cv=none; b=Y0XQmfFGbM1EEgaTh2Z/5Ninmjr+BP7dWv34tjibPsEOxTjh3KwYDT0EgDWNYSlvq+2fYQJjTszM6MHPdNz+lHYmH9YJf27lX6VinwkhMMX3c0bTHYgrat6T4bMq7hmiXf+FiJV9tZdClLmBeJSuUBoPX5d+LO7zVadr4JnI3Jk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776265672; c=relaxed/simple; bh=Drt4olyRuT2tALLQ8RuoYoBxrj8siEgxgXFJHNRMNDQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=STuHbN+Zm6+vtqvZv64F3bhkC3AwcupHMaTQw/W+LtaWCQf46X6bY8nvcxloFIKWtmJfReQAf0CCfgbwi+F0hGa8AJSY8N9kxdIBg0oSYsNFYkHQgWohQjpqM7xg0WSPdSmtOJMmv5H05T/EnkqK9hmjQ56T4ICPK9MguC5afig= 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=i7Cb/5Um; arc=none smtp.client-ip=209.85.214.182 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="i7Cb/5Um" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2ad9a9be502so42192285ad.0 for ; Wed, 15 Apr 2026 08:07:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776265671; x=1776870471; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=N1pLRZfOG8G8WCP9cuAbEmSh0QlKpjJAukNE5nT+L34=; b=i7Cb/5Umb6WAHf7MqRdCHX2fZ5//G1te8XwqWYfoSjkvpLim2gWPIddLTEWY2dmjqT oGRbmzZGkUou112aEqSNz+Na5Yj4mW5vtLEx8Rp8uwXY0dKzkk8M2QlaS6CCv+CnCy/q Qe8rAKfEyUijaJvtmfO2+N7xqee02Y1LEQ2/GsdIh7sCr+myZEFCpmfJSy+fcRyUWPTa 7FTj1xZMB1lloClsgAsFF8DMLK1V3Z4LIKpT/tFdKlMxfek3rFG+ViCGM3Q49ZRAgAyP kq74l+HcYlUg7pRLetv3iCgKjJtKHJf36mlmuLxr/dyRBHuS9xo+7L6EBaoBJRXfH/lR IF5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776265671; x=1776870471; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=N1pLRZfOG8G8WCP9cuAbEmSh0QlKpjJAukNE5nT+L34=; b=q7qOXXGddU1sH0Uq4aeIQtGRN118bqi6zJpBb9nmiHlR5rMiYgiZ53af380RCJw7g3 sBfcmr9Rd59/DFk/0kT+iyUJFbP7pDGnfzRWWg8KYOTrmrsK9lw2wb8yprjlLFIsJiMl 3EoPyydLkuVNg81NmGU+SGV+pA/hYKhvkkGbz3Q1M48qxrp6zKPE1MoLMPX3QmMr/vmT qGcHb2WAY7axsGjdC/Yce/pc/FL2UU9QWEatjeFDCcJPUbJfmCGexWjoGXo+I6M66wE/ lgGpX84B/b1QbhpxzYIGwOUOieNLKNCL1kJVzndibfgil2ZSl3wXMfd5tXqaEdmPBw/n 57aQ== X-Forwarded-Encrypted: i=1; AFNElJ8LrdfAC3DqTC5F+UaWHWp41ciErSOXAthHBTv2+SqSgaH2Dl4MPxVaGis+ExiILfk7kvQNo7cxnjdA/jk=@vger.kernel.org X-Gm-Message-State: AOJu0YwdvMgL48WH07mUpVHxItHflkUfR+U27UVK9x2AsM0B7moe+Xu3 xo+dm9De9YbCOW3U8gfaf+91JhAW7y8SBenIMecZlK1muqTb7haYu2fC X-Gm-Gg: AeBDiesmDH7uHLpt/YI4fro/MivO9Q40GjMJJjtXtF3jMb3gJkaJsAqqXafOaf/yesj gbfJzeD57GZh6sq4LCDkZgxXyvCQnjbTjf9Kpm5pvoWGtLQF5h45GDxjsIOFP/GQHGgP4zDInad UcMD3ld/F0zj/ALx2H/EePQ7KGLYzVk/F0z3dxQbP/ELlqFkQrG41u7rqSnwVt4VLbAjUdFLvp8 B0QCXLs11GXCDAuFo1pjvlsfhK0j1UbBorSgNo0/LhwjjLnj9kjXw51cXWfi0TsGaSRw9u1ABWv ogZ8dRPKlYatsaLPaeLTRpUZeJMEdaL2lsKMz1vq/OSf9RWEdB1j/jHMr5vGNgi3mhrfQBp/hpz bDTrnv8ePpgpdMQvmmYb7SmJHQbm8B0rH2XHbKMvU7/1y6ard/CekV7V2o71xVms9t4tGki0YQP csMJk2W1qDjWfjriXSp1lUDLAHtOJfmPwy1um2VkFu2V7iRvxVi2HoNszJk7S/hnEPBCrxf7Z1u yKcmwnMLfY2xP7XXxnfqaoK0LfdrqA= X-Received: by 2002:a17:902:7c93:b0:2b2:3bb6:fbf8 with SMTP id d9443c01a7336-2b2d599a212mr161470545ad.16.1776265670548; Wed, 15 Apr 2026 08:07:50 -0700 (PDT) Received: from junjungu-PC.localdomain ([223.167.147.125]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b4780f024csm22870865ad.3.2026.04.15.08.07.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 08:07:50 -0700 (PDT) From: Felix Gu Date: Wed, 15 Apr 2026 23:07:45 +0800 Subject: [PATCH] thermal/drivers/sprd: Use for_each_child_of_node_scoped() in probe Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260415-sprd-v1-1-aec5b32b3094@gmail.com> X-B4-Tracking: v=1; b=H4sIAMCp32kC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDIzMDE0NT3eKCohRdYwNjk2TjxERLMxNLJaDSgqLUtMwKsDHRsbW1AAxK+F5 WAAAA X-Change-ID: 20260415-sprd-3034c3aa9649 To: "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Orson Zhai , Baolin Wang , Chunyan Zhang Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Felix Gu X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1776265667; l=2627; i=ustc.gu@gmail.com; h=from:subject:message-id; bh=Drt4olyRuT2tALLQ8RuoYoBxrj8siEgxgXFJHNRMNDQ=; b=KfyzGULnOa0OCC/QPWI6zBBfD4MoOZqf71Aj3o1D5/tAOpiQpv6nFOOE55lZh4UMjcKEz/kq4 m+563VKjNq0BUQnuW+KzAsOAIgiNM34pEM9wO0BDVpU0u7ZmL/w34av X-Developer-Key: i=ustc.gu@gmail.com; a=ed25519; pk=fjUXwmjchVN7Ja6KGP55IXOzFeCl9edaHoQIEUA+/hw= Use for_each_child_of_node_scoped() to avoid manual cleanup of_node_put() in early exits from the loop, simplify the code. Signed-off-by: Felix Gu --- drivers/thermal/sprd_thermal.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/drivers/thermal/sprd_thermal.c b/drivers/thermal/sprd_thermal.c index d683fcb0f8ab..069bc13ffc57 100644 --- a/drivers/thermal/sprd_thermal.c +++ b/drivers/thermal/sprd_thermal.c @@ -331,7 +331,6 @@ static void sprd_thm_toggle_sensor(struct sprd_thermal_sensor *sen, bool on) static int sprd_thm_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; - struct device_node *sen_child; struct sprd_thermal_data *thm; struct sprd_thermal_sensor *sen; const struct sprd_thm_variant_data *pdata; @@ -380,12 +379,10 @@ static int sprd_thm_probe(struct platform_device *pdev) if (ret) return ret; - for_each_child_of_node(np, sen_child) { + for_each_child_of_node_scoped(np, sen_child) { sen = devm_kzalloc(&pdev->dev, sizeof(*sen), GFP_KERNEL); - if (!sen) { - ret = -ENOMEM; - goto of_put; - } + if (!sen) + return -ENOMEM; sen->data = thm; sen->dev = &pdev->dev; @@ -393,13 +390,13 @@ static int sprd_thm_probe(struct platform_device *pdev) ret = of_property_read_u32(sen_child, "reg", &sen->id); if (ret) { dev_err(&pdev->dev, "get sensor reg failed"); - goto of_put; + return ret; } ret = sprd_thm_sensor_calibration(sen_child, thm, sen); if (ret) { dev_err(&pdev->dev, "efuse cal analysis failed"); - goto of_put; + return ret; } sprd_thm_sensor_init(thm, sen); @@ -411,31 +408,25 @@ static int sprd_thm_probe(struct platform_device *pdev) if (IS_ERR(sen->tzd)) { dev_err(&pdev->dev, "register thermal zone failed %d\n", sen->id); - ret = PTR_ERR(sen->tzd); - goto of_put; + return PTR_ERR(sen->tzd); } thm->sensor[sen->id] = sen; } - /* sen_child set to NULL at this point */ ret = sprd_thm_set_ready(thm); if (ret) - goto of_put; + return ret; ret = sprd_thm_wait_temp_ready(thm); if (ret) - goto of_put; + return ret; for (i = 0; i < thm->nr_sensors; i++) sprd_thm_toggle_sensor(thm->sensor[i], true); platform_set_drvdata(pdev, thm); return 0; - -of_put: - of_node_put(sen_child); - return ret; } #ifdef CONFIG_PM_SLEEP --- base-commit: 936c21068d7ade00325e40d82bfd2f3f29d9f659 change-id: 20260415-sprd-3034c3aa9649 Best regards, -- Felix Gu