From mboxrd@z Thu Jan 1 00:00:00 1970 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 CB0C1C43458 for ; Wed, 8 Jul 2026 09:23:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:Message-ID:Date:Subject:To:From:Reply-To:Cc:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=3SacGhwSbkGS3qcaoGtvVjy4TybBKSuqQFODkWgiYfM=; b=25O6uSdGvihFVIUajoC3PslHy0 9DtEuXntLXsM9W6pnTqrFz0GrMkH+Bl7NWq4KtMoOHA9vE7YAVabx/yfbGF7WOqZBbZss8doT8XOu zz2hT9nS2XiRPwWM6PlnJBPg0M63e8T2JjDzgXso1SCci+eKW4SS7Z5Xfxwnts2UYQ5Di4kx6Tvzg WbUXLvLDiQ17VDg0b1kHBIkH9mYlfrYVdfOmDrdo5mcyJodaJs0DsQs9lHtulb4g8aYTUUn1JX2wD rnVJj8OKNnyoO/5xt+sJXhUWpp/dpNS9GxCV+0YNVUMbAntcI/YH9LDDHeiuudLUSzYsQyvDVvd7x GkdpSWgg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1whOUh-0000000Gjy4-3VzQ; Wed, 08 Jul 2026 09:23:03 +0000 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1whOUe-0000000Gjwr-2U6V for linux-mediatek@lists.infradead.org; Wed, 08 Jul 2026 09:23:01 +0000 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-2c6b67d5fa1so5317535ad.2 for ; Wed, 08 Jul 2026 02:23:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783502580; x=1784107380; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=3SacGhwSbkGS3qcaoGtvVjy4TybBKSuqQFODkWgiYfM=; b=simqDRkiB83Dpf7NvsV4rIB9roBEod45ebOwzCnGi0TNQtyRDEaew3ILsAz3W5pkjt sRxkRPCRDXI0yTzW30g3HUWDvTR0OnZdvaNQLwcsJHfrxZmTqJ9ByGiDa2WZtP2lmQZd 4oRtJtUMeqmXYeFZfZIPmWckIFJwQLgffKXJP0s9uuchzl7gYSj7LFY95IxCXUOv4VpQ UkqWwWRw4v7JR0UHh/j8H4b69IBVcaZFsnTIogHq07nYunbjvE+aB0BUn1nH4mI3zSyg AOFQCmv66sa3/6gF1rqW7NEXhojif2j/tQd/k06Mnf67PYnWbaKOP2oEEf2s+dUts1sN 9mCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783502580; x=1784107380; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to:content-type; bh=3SacGhwSbkGS3qcaoGtvVjy4TybBKSuqQFODkWgiYfM=; b=cO8QrnJv3fsg6DeXuLjHteKH7oWvz3r/CqBBP+sW6g6wYzs4mPWoLmoI2KYfncUByp 2mYOETGqj0Q57l1LhGgK7A3keO/Y+PWW5Mg/eZI93OUKA7O4AFfXu/NyZoMOjiXd9T8g RGwnLyWP91RWj8c4ragFKWsHkSwVtsy5w8uHk+L03L0TW9KUmVXrqnzxKQd7XzGqbs0H ElQuljFeRUKLyKWxkUFdF9uW1X8h6YNfiufMEQh5becf9Wp3587tHqU5i/3xew6RHBRg dBeC0tZYDBsWMiAYeomZGbfzwnr90ieXWZW3Q422ozMaN4Kh30BLE2of7J1+fmNyP1z0 4QoA== X-Forwarded-Encrypted: i=1; AHgh+RqjBvk4hDoXkSdQl2GWhgSlbKzdaekLpdTLwr6wCTpbc1enuKM1rbqh7GqWhIYcUvtIMFsLQfVJNtCgepIWgg==@lists.infradead.org X-Gm-Message-State: AOJu0YwIJJ3RnwsXs3T1QUDqjVny3MaAB4++rakhSKX2lPtF9KsdOB0L qjCVB04e5BjgD4IkYp0km7OYMj/8xvu9tRotKdN4/Ns21JM+v9bH9yTI X-Gm-Gg: AfdE7cltl4LT3n5F1vZ/FudINILMgs3yc7RKB34OR/DioWkXaZa6BPipr72TdVC6XTa /Bm8ol/x5ESGqYHxHsRdu6F7SeRIRp/HTq2R9Ot4nROP3HRXVx794nyKL5ulJ1jRzuWoP9muu/E gfsp3AnK8EHhmuaqhYeKlX8m8E2eqmPeTed2h2rTDFFNed2o3NJPvXVUIkKUTNBD9fuXvOfqgIH ZjglaeLrNB5DDPHAhn/kZsvaXjoj/GrcbS36Fu1J1Ru2G8R/RKcbNu5vq4V+s2BSmsV1DNLhMyb 8PoiCvVwphmOgXoj2zYb1aY+qEWENedbB0+B+j10KEBAR0MST2Y1kLmymPHWIZV3trDZGmhZTaT Swgqkp3/u/N8mraINnQ5+yE9/LiWQfdLEZd09NJreDb7p4eGetLy52oc6pOfgBNcXfAz2V+N3jr KLaa2l3Q== X-Received: by 2002:a17:902:cec2:b0:2cc:9179:32e with SMTP id d9443c01a7336-2ccea37df94mr17127855ad.10.1783502579629; Wed, 08 Jul 2026 02:22:59 -0700 (PDT) Received: from lgs.. ([2001:250:5800:1000::f280]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9d1e279sm24999735ad.45.2026.07.08.02.22.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 02:22:59 -0700 (PDT) From: Guangshuo Li To: Ulf Hansson , Matthias Brugger , AngeloGioacchino Del Regno , =?UTF-8?q?N=C3=ADcolas=20F=2E=20R=2E=20A=2E=20Prado?= , Irving-CH Lin , Macpaul Lin , Adam Ford , Guangshuo Li , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: [PATCH] pmdomain: mediatek: fix remaining %pOF after of_node_put() Date: Wed, 8 Jul 2026 17:20:38 +0800 Message-ID: <20260708092038.741308-1-lgs201920130244@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260708_022300_660594_699032E5 X-CRM114-Status: GOOD ( 12.72 ) X-BeenThere: linux-mediatek@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-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org scpsys_get_bus_protection_legacy() looks up several legacy bus protection regmaps from device-tree nodes. Two error paths put the device node before checking whether the regmap lookup failed, but still pass that node to dev_err_probe() with %pOF on failure. If of_node_put() drops the last reference, the later %pOF formatting can dereference a freed device node. Keep the node reference until after the error message has been emitted in the infracfg and SMI lookup paths. Also drop the SMI node before returning when the SMI phandle is missing. Fixes: c29345fa5f66 ("pmdomain: mediatek: Refactor bus protection regmaps retrieval") Signed-off-by: Guangshuo Li --- drivers/pmdomain/mediatek/mtk-pm-domains.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/drivers/pmdomain/mediatek/mtk-pm-domains.c b/drivers/pmdomain/mediatek/mtk-pm-domains.c index e1cfd4223473..f877d6694dd5 100644 --- a/drivers/pmdomain/mediatek/mtk-pm-domains.c +++ b/drivers/pmdomain/mediatek/mtk-pm-domains.c @@ -1032,12 +1032,15 @@ static int scpsys_get_bus_protection_legacy(struct device *dev, struct scpsys *s node = of_find_node_with_property(np, "mediatek,infracfg"); if (node) { regmap[0] = syscon_regmap_lookup_by_phandle(node, "mediatek,infracfg"); - of_node_put(node); num_regmaps++; - if (IS_ERR(regmap[0])) - return dev_err_probe(dev, PTR_ERR(regmap[0]), + if (IS_ERR(regmap[0])) { + ret = dev_err_probe(dev, PTR_ERR(regmap[0]), "%pOF: failed to get infracfg regmap\n", node); + of_node_put(node); + return ret; + } + of_node_put(node); } else { regmap[0] = NULL; } @@ -1046,17 +1049,22 @@ static int scpsys_get_bus_protection_legacy(struct device *dev, struct scpsys *s node = of_find_node_with_property(np, "mediatek,smi"); if (node) { smi_np = of_parse_phandle(node, "mediatek,smi", 0); - of_node_put(node); - if (!smi_np) + if (!smi_np) { + of_node_put(node); return -ENODEV; + } regmap[1] = device_node_to_regmap(smi_np); num_regmaps++; of_node_put(smi_np); - if (IS_ERR(regmap[1])) - return dev_err_probe(dev, PTR_ERR(regmap[1]), + if (IS_ERR(regmap[1])) { + ret = dev_err_probe(dev, PTR_ERR(regmap[1]), "%pOF: failed to get SMI regmap\n", node); + of_node_put(node); + return ret; + } + of_node_put(node); } else { regmap[1] = NULL; } -- 2.43.0