From patchwork Wed Feb 1 10:15:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51273 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192085wrn; Wed, 1 Feb 2023 02:18:49 -0800 (PST) X-Google-Smtp-Source: AK7set8B2TENvJOlHKvgtYgCCCDutDIM5InAxAZC144KUao1cJTJGkWxqxAcsfto6jX6z2wGoS2L X-Received: by 2002:aa7:d959:0:b0:4a1:7543:d6ad with SMTP id l25-20020aa7d959000000b004a17543d6admr1344169eds.28.1675246729385; Wed, 01 Feb 2023 02:18:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246729; cv=none; d=google.com; s=arc-20160816; b=L+NTfU+cHfWLn8fdgTF0xhiAqM49bHrOqjQ31hituKUXeXz0pot8DO+EAfHA5iPFH/ 4i6Y8R/QrFl7t4GNIqwRlSq54uCQbDfu+/XWtah4ke37S8BhtwZarALM3zIZvzt3SLVR L9imIgPCxmdjgzDOCLVJFJoODs5t54CVdMVh6RdMKy9p/VAsUK8VlN1F61rgJOgn77+8 Mxm8NZ6LZUYa4xN5IVJ9Q6quATL9sfZe+z7C2mpSKzu4AbA7UOWrqbv9wC0EdkN+NJ71 Tr+G2e3UpSXhdhQFuG+fY1yiQmQyfWt8pyYjOXIfDNOexJu5MaPtTD3XYddtEd1LNQIk MkhQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=UO1Mkqv7/tLEnxFq/EfFFl9WWiJXKuGb4eg9Ewjvpdk=; b=ERaWv//IoBiJKXj0AocaSD1u7P6wVDMJG5xwXqdnBYX6BvZr6CV3hW5VTeYYluHSod 6DBEecIkSWVPEmryVWBI0DMUkMES/Z6TjW4uRCMBmZ4Z1N83Ho77m3O0H1BZgR1TUZCB HTkrUwuW5bREcwU6j/wIQHW1QgGiJqlKknl0Jl7j0m19R91gitDhBG3nUyfrb4n3kMmo O+rfl5OIyMpc7PO/Uw4Z0nOVhMVh0InFymzF8ct4CY9wDOzg2UlfDLMtz46wc5EamKBL h5nFyTuIARLh6hOprNutOTUe04K5wj5WPO1a4TxoQ1f/KlIS7c8ZrN0PCULplqELCZ9K y3MA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Q+YA47U1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id fd6-20020a056402388600b004a2662b3c33si6255656edb.280.2023.02.01.02.18.08; Wed, 01 Feb 2023 02:18:49 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Q+YA47U1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232341AbjBAKRA (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232054AbjBAKQg (ORCPT ); Wed, 1 Feb 2023 05:16:36 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 158204F875; Wed, 1 Feb 2023 02:16:35 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id BC4BFB82153; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5B2EFC433EF; Wed, 1 Feb 2023 10:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246592; bh=/jzNzk0NhS4/FCAYMQWbqL9kCfrOP5Et7Jn12aqIVFU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q+YA47U1a6hCaCVthi4li1QCYeGP257njXnsax7cF7vyUdfw+PX2v1hqVMA6UlBw+ YuPfezKfhCBEmIET1emJ6B3y8ds76bJ6fG5G5/aVghIa1qfXcKJEQyc5QUAEqIoBd+ fQERzie+TjiOc+d9ShKB6NIs0jxI3EEF53q7mi1jP8KGLvFSc5pXh4ybyKUYZMg+dn cz/1zhVCDIfOHXbV2zBYY/52jXkvKlnPRfXzwy6k976L23q6lwFUjdNGcRGqwYarGA S/aPmVgLQQdAKYSN/OY0RbjC/HK55r5sMzpCrkEQaKvpwPLgAKbMlZHerk3BVH0UGd mrdxWSarhh1Uw== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAf-00043i-2E; Wed, 01 Feb 2023 11:16:53 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Georgi Djakov Subject: [PATCH 01/23] interconnect: fix mem leak when freeing nodes Date: Wed, 1 Feb 2023 11:15:37 +0100 Message-Id: <20230201101559.15529-2-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623514428826781?= X-GMAIL-MSGID: =?utf-8?q?1756623514428826781?= The node link array is allocated when adding links to a node but is not deallocated when nodes are destroyed. Fixes: 11f1ceca7031 ("interconnect: Add generic on-chip interconnect API") Cc: stable@vger.kernel.org # 5.1 Cc: Georgi Djakov Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio --- drivers/interconnect/core.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c index 423f875d4b54..dc61620a0191 100644 --- a/drivers/interconnect/core.c +++ b/drivers/interconnect/core.c @@ -850,6 +850,7 @@ void icc_node_destroy(int id) mutex_unlock(&icc_lock); + kfree(node->links); kfree(node); } EXPORT_SYMBOL_GPL(icc_node_destroy); From patchwork Wed Feb 1 10:15:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51276 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192219wrn; Wed, 1 Feb 2023 02:19:10 -0800 (PST) X-Google-Smtp-Source: AK7set90eWAo3kPTSlRhkvZlRpgz/Q5tscjacX/5ngQLqWVufqj263Ga/jlF9eUAD1sY80qPvijz X-Received: by 2002:a17:906:5181:b0:878:79e6:4672 with SMTP id y1-20020a170906518100b0087879e64672mr1935350ejk.42.1675246750175; Wed, 01 Feb 2023 02:19:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246750; cv=none; d=google.com; s=arc-20160816; b=K4Vbdy5puB7uyD3sYhzqoH5XoNl/igrfu/CSSRsGQW/AHkvFCDYvtyugcWAVN56TQg e8aITAhbDbTkjhVGFjTmtIcabq2A1e2w/+UTJITIIPd054H2bRfwWMH27w0uwdRyUv49 bHylGqAadeN5obfYkhIEUwzkcv9RBFvn1VZtTm5RM4Q7oLJk6LohQEPtDA9jkCZSR65U GDRZHscD36jWuzrovk/hfF6Vdu0XMVVMw5CoNBFt/C9EUz1AwfzSFH2Zex73Eun+i7/Z nL6gAl2Ib+xisK89MRPp2xlgj5x87EAdYp5rAzAP4UPFNlsIQaa+cUmVA3b1XdZ9i0UD DbmA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=/0YsZxTMqsqnCQYegQWj9qKh+PqsW+2KqVV6UTsNl1c=; b=UNPoF4cfX/5/P9RmxHnPkGIWizl2X5BaXCc5vU5a043vntSaz2bGW92l9xaoT4PtRl dMuRwdMJ5nUBRrBfINClp8A/d+m0XkQ0yCwHRT0dDTicHN+p6AcybmONgtY0BlwNihh/ uXHTnl3Y9A5ruGshDpuwVrol+woVTaU0uZA+F64xQazm9h1cWD49wa/u5A2Y64TueF6e LX/k/eIM2XMy+sSHT30HTsoGF8k/O+u6lKBmFbSbxDl7f7eppTVcFzslXMisdnWJYWjS CGzPE5GKuIMxiyuHnWZwkSD5AferaNf28LPaC1AdVMkyy839/FMmWdhqagmAkakIAg8j z3Xw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=LsBOSRc4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id fn4-20020a1709069d0400b00879ec199da0si17154854ejc.294.2023.02.01.02.18.46; Wed, 01 Feb 2023 02:19:10 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=LsBOSRc4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232390AbjBAKRL (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52004 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232083AbjBAKQh (ORCPT ); Wed, 1 Feb 2023 05:16:37 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C7C054A201; Wed, 1 Feb 2023 02:16:35 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 5C509B8214A; Wed, 1 Feb 2023 10:16:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 65338C433A1; Wed, 1 Feb 2023 10:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246592; bh=J38ZBR8pc72tC+fYh5xI/DIrVur7uHuPuNlQh0t7yw0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LsBOSRc4LhP6on2c2AZqn81X6spj//gAX3H/2MHYy6XlYJdsCZVehWiGleOkH6NVn KqXYxiA9cw5qYXG/OmKJqBe3CwqzJxavQPSYz3Gua4ydMiq9gTW/2mr9ea6flfX2qr PKbUgoGAZUB7A1OhpWvomiggi4nJLO1xntbQzEYE7CIpXK8L4ZQvOpe8aQHPa/rXds z4dHgDaeX2+OiQndciatPNIbed+G2+JmEwcIPC8tR6+3QU5lLmvf3Kd7H2VztQfV42 tFyAufV/4d0UrNFJGMHeqll8RqysfbfCChfNrmJjy5gcjZYuyDWnCXUrdF7OlMeqD0 rGltDlalUW1Iw== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAf-00043k-57; Wed, 01 Feb 2023 11:16:53 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 02/23] interconnect: fix icc_provider_del() error handling Date: Wed, 1 Feb 2023 11:15:38 +0100 Message-Id: <20230201101559.15529-3-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623536032325714?= X-GMAIL-MSGID: =?utf-8?q?1756623536032325714?= The interconnect framework currently expects that providers are only removed when there are no users and after all nodes have been removed. There is currently nothing that guarantees this to be the case and the framework does not do any reference counting, but refusing to remove the provider is never correct as that would leave a dangling pointer to a resource that is about to be released in the global provider list (e.g. accessible through debugfs). Replace the current sanity checks with WARN_ON() so that the provider is always removed. Fixes: 11f1ceca7031 ("interconnect: Add generic on-chip interconnect API") Cc: stable@vger.kernel.org # 5.1: 680f8666baf6: interconnect: Make icc_provider_del() return void Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio --- drivers/interconnect/core.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c index dc61620a0191..43c5c8503ee8 100644 --- a/drivers/interconnect/core.c +++ b/drivers/interconnect/core.c @@ -1062,18 +1062,8 @@ EXPORT_SYMBOL_GPL(icc_provider_add); void icc_provider_del(struct icc_provider *provider) { mutex_lock(&icc_lock); - if (provider->users) { - pr_warn("interconnect provider still has %d users\n", - provider->users); - mutex_unlock(&icc_lock); - return; - } - - if (!list_empty(&provider->nodes)) { - pr_warn("interconnect provider still has nodes\n"); - mutex_unlock(&icc_lock); - return; - } + WARN_ON(provider->users); + WARN_ON(!list_empty(&provider->nodes)); list_del(&provider->provider_list); mutex_unlock(&icc_lock); From patchwork Wed Feb 1 10:15:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51285 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192682wrn; Wed, 1 Feb 2023 02:20:23 -0800 (PST) X-Google-Smtp-Source: AK7set/+jAg6u+bJq53UaSooj8FK+BRwxXDt+tgFntQjB4fCe8xoQW7RUoRJNXUgI644VIysU6/H X-Received: by 2002:a17:906:6997:b0:878:4e6c:344e with SMTP id i23-20020a170906699700b008784e6c344emr1844591ejr.43.1675246823065; Wed, 01 Feb 2023 02:20:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246823; cv=none; d=google.com; s=arc-20160816; b=xNxiB8wee56IGkN5xyKovE9Sd+UaTdp5uAv791fi73ISDOPHxUCqQvLnr49wTmvHFi Rzr3tqr8UcfIAOLSQ2VCY9rPTNvXsO/orpp+oN06noOAXE+j46fIjdMHniRNhWIJrX2T 3LLPk+SOmBdc0d3W1YiiTnJC3YsfHcLhzzgY7G7sSR7P5UWwIUm+IV2RjaSpTkz9dYvH 0/jQrDvktTVXJii67BqRvRZH0N8X8nGQgdOZv75V+gSE+hykJZx6tL4EimkSreYcxeC1 grmiY8PbI7nzV2wpCFFTA+0rfafsWQAO3oky5Wv+dqcNpasyeV/SCA5Pt0Bp+vMq6dq5 yDpg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=h+Rl1FR3KQ48rWwvvusU+S2NtcDjoJRu3CuliJ2JgL4=; b=DZVpPD8ePM2v5GU06ZzktU4z788QYZwyujsc/bPAtDv1aYhsDhC6jsE7k61aFZi9ad UGbM4KjWgrk235DYTZ9QaO3IjW6Z9kVIHcnI2H6Xtzm2Ldv6vj47Vbk25rfWj1IBIgE0 p5rDWau4f1rLF0OcGZbyk+p/wxkYnjAFe5xXgBJdeb+f7UdsFaHEc4rBOfbqChi4EPG3 9T4AXt3EsIu9JcJ8OZvj+3loJ1rtGzKJ2gUaZ2vINwJhbyLvkikmiqnMxa4TGL+JCCwW fAMsCTYXbsoWrubuxiMYrgYJylPy5UV/EBlLSudg6iRPsIvWank24l3qu5gg/xevl9AC hG6g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=talcQpud; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id gc8-20020a1709072b0800b007c0f7b5d8e6si20208507ejc.2.2023.02.01.02.20.00; Wed, 01 Feb 2023 02:20:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=talcQpud; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232462AbjBAKRs (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52000 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232093AbjBAKQh (ORCPT ); Wed, 1 Feb 2023 05:16:37 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 13C834F86D; Wed, 1 Feb 2023 02:16:35 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id C7D0DB82157; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5DA49C4339C; Wed, 1 Feb 2023 10:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246592; bh=zGJKd1HoSpXdCOGyBtYMQrEgqsyLqZtoHxPBl2njZF4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=talcQpudDREYMWp7pi7qMgEwntZSk6OqGdo/uGwl1fFtCD7eoR3Li5C7VTqqsm5+3 850Su7OkwukpvX54VWhH3QEic+pFR5+6/kimvq3H1bVQBK6VPBNCUPyXnVJNzkhIC2 b9F7wxe0gcSzvkTbhqeq+WrTrZW/B60PRexLRIK0E/kNB9mdVjRlZkG1cu9/U1nud3 tdt7Dhf/1KBiqfxZgUb/CDWWeK7U+VTTyBYkzPf6e8HsCC/9CvkJjf8UfBpwrd3FR3 7Aewe1RLUD4INvwqepU8kxnJRiKaODMRo7Ryy+7uvoy93Jqz+ZfOpRTJpni0t7f861 Yge/cTaQhJ8BA== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAf-00043m-7d; Wed, 01 Feb 2023 11:16:53 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 03/23] interconnect: fix provider registration API Date: Wed, 1 Feb 2023 11:15:39 +0100 Message-Id: <20230201101559.15529-4-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623612731854025?= X-GMAIL-MSGID: =?utf-8?q?1756623612731854025?= The current interconnect provider interface is inherently racy as providers are expected to be added before being fully initialised. Specifically, nodes are currently not added and the provider data is not initialised until after registering the provider which can cause racing DT lookups to fail. Add a new provider API which will be used to fix up the interconnect drivers. The old API is reimplemented using the new interface and will be removed once all drivers have been fixed. Fixes: 11f1ceca7031 ("interconnect: Add generic on-chip interconnect API") Fixes: 87e3031b6fbd ("interconnect: Allow endpoints translation via DT") Cc: stable@vger.kernel.org # 5.1 Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio --- drivers/interconnect/core.c | 52 +++++++++++++++++++-------- include/linux/interconnect-provider.h | 12 +++++++ 2 files changed, 50 insertions(+), 14 deletions(-) diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c index 43c5c8503ee8..93d27ff8eef6 100644 --- a/drivers/interconnect/core.c +++ b/drivers/interconnect/core.c @@ -1030,44 +1030,68 @@ int icc_nodes_remove(struct icc_provider *provider) EXPORT_SYMBOL_GPL(icc_nodes_remove); /** - * icc_provider_add() - add a new interconnect provider - * @provider: the interconnect provider that will be added into topology + * icc_provider_init() - initialize a new interconnect provider + * @provider: the interconnect provider to initialize + * + * Must be called before adding nodes to the provider. + */ +void icc_provider_init(struct icc_provider *provider) +{ + WARN_ON(!provider->set); + + INIT_LIST_HEAD(&provider->nodes); +} +EXPORT_SYMBOL_GPL(icc_provider_init); + +/** + * icc_provider_register() - register a new interconnect provider + * @provider: the interconnect provider to register * * Return: 0 on success, or an error code otherwise */ -int icc_provider_add(struct icc_provider *provider) +int icc_provider_register(struct icc_provider *provider) { - if (WARN_ON(!provider->set)) - return -EINVAL; if (WARN_ON(!provider->xlate && !provider->xlate_extended)) return -EINVAL; mutex_lock(&icc_lock); - - INIT_LIST_HEAD(&provider->nodes); list_add_tail(&provider->provider_list, &icc_providers); - mutex_unlock(&icc_lock); - dev_dbg(provider->dev, "interconnect provider added to topology\n"); + dev_dbg(provider->dev, "interconnect provider registered\n"); return 0; } -EXPORT_SYMBOL_GPL(icc_provider_add); +EXPORT_SYMBOL_GPL(icc_provider_register); /** - * icc_provider_del() - delete previously added interconnect provider - * @provider: the interconnect provider that will be removed from topology + * icc_provider_deregister() - deregister an interconnect provider + * @provider: the interconnect provider to deregister */ -void icc_provider_del(struct icc_provider *provider) +void icc_provider_deregister(struct icc_provider *provider) { mutex_lock(&icc_lock); WARN_ON(provider->users); - WARN_ON(!list_empty(&provider->nodes)); list_del(&provider->provider_list); mutex_unlock(&icc_lock); } +EXPORT_SYMBOL_GPL(icc_provider_deregister); + +int icc_provider_add(struct icc_provider *provider) +{ + icc_provider_init(provider); + + return icc_provider_register(provider); +} +EXPORT_SYMBOL_GPL(icc_provider_add); + +void icc_provider_del(struct icc_provider *provider) +{ + WARN_ON(!list_empty(&provider->nodes)); + + icc_provider_deregister(provider); +} EXPORT_SYMBOL_GPL(icc_provider_del); static const struct of_device_id __maybe_unused ignore_list[] = { diff --git a/include/linux/interconnect-provider.h b/include/linux/interconnect-provider.h index cd5c5a27557f..d12cd18aab3f 100644 --- a/include/linux/interconnect-provider.h +++ b/include/linux/interconnect-provider.h @@ -122,6 +122,9 @@ int icc_link_destroy(struct icc_node *src, struct icc_node *dst); void icc_node_add(struct icc_node *node, struct icc_provider *provider); void icc_node_del(struct icc_node *node); int icc_nodes_remove(struct icc_provider *provider); +void icc_provider_init(struct icc_provider *provider); +int icc_provider_register(struct icc_provider *provider); +void icc_provider_deregister(struct icc_provider *provider); int icc_provider_add(struct icc_provider *provider); void icc_provider_del(struct icc_provider *provider); struct icc_node_data *of_icc_get_from_provider(struct of_phandle_args *spec); @@ -167,6 +170,15 @@ static inline int icc_nodes_remove(struct icc_provider *provider) return -ENOTSUPP; } +static inline void icc_provider_init(struct icc_provider *provider) { } + +static inline int icc_provider_register(struct icc_provider *provider) +{ + return -ENOTSUPP; +} + +static inline void icc_provider_deregister(struct icc_provider *provider) { } + static inline int icc_provider_add(struct icc_provider *provider) { return -ENOTSUPP; From patchwork Wed Feb 1 10:15:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51272 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp191932wrn; Wed, 1 Feb 2023 02:18:26 -0800 (PST) X-Google-Smtp-Source: AK7set8xiGIbFBuopPgp8FQWuyNaJbzqBD3k9vux99WVyNs2BJgeBpeBini/LUd8FSwroWhqRTHY X-Received: by 2002:a17:906:2496:b0:86f:5636:4712 with SMTP id e22-20020a170906249600b0086f56364712mr1670790ejb.7.1675246706503; Wed, 01 Feb 2023 02:18:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246706; cv=none; d=google.com; s=arc-20160816; b=di2XK2IXY/2BCdMnyJbZ+CRD2c5RX1NKmLvnQzgCR4lHWYtwGJz1QiiuSzZqdqN7Eu 3YV7KxYG0fDBZlLUYDNFp+HKJfMQJiM3o7gDPcarM3ZJWivJKfXlfX21rdpX9m6qrX2/ 2gE8FqaxJxrtIr8dsklZF5jePQS+KeVUvPaw3qBAmWfls89KaaZ7XEpVVSz4KI+eRki9 gLzumCtljY1d4RPHTbwde4DZeH8JoFzXQCzbVEINx61j6jbWUOcQshYQwhh4t4uq7efG c9+n22O5oLpFPAZY0aJg6luagMNUM56sQyuJgRxJw5sHqf28kqRGhObVdQ7dCoZXqUAL b0kw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=XN1ggBg9GWVvg+Lcp1Zrg8z6mmjpVaY228lpbc3g9eI=; b=M6MfRE2xuw2KFHjhMIZ7Jbc61ftyZsWSf9CChbPJi3Dx2XfXJR3K+1ZOsyZJ4Ah7Kv YNY0AVZyabjDWi+11X/E2+hvNJG4qSHqeUjywU2LB5hHJZqZDuQTZecwwDEybyvgTbU+ G4BrHXA4tkDc+obAuVLOkBSn3p3THioycFnqzO8pNH368pt+cXFqSpUP3CUZ9B7orhBK ye6sNbH18cG65BxQVK3cJL20gq21vFJb9Qw5mgPxPXpYPCkn0xbVQy9ISqxbnXmXGGMX ToG5QpboSqBRoQ8ORFL4qXinVULCZoUosXqlQvLG3tns0mGvkFhYyZN2OqhoJmpzvRl8 GQXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=HdBu+eKw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u5-20020a170906108500b0087869a2ef87si22292497eju.456.2023.02.01.02.17.52; Wed, 01 Feb 2023 02:18:26 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=HdBu+eKw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232043AbjBAKQg (ORCPT + 99 others); Wed, 1 Feb 2023 05:16:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51918 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230236AbjBAKQe (ORCPT ); Wed, 1 Feb 2023 05:16:34 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 72E762ED54; Wed, 1 Feb 2023 02:16:33 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 1069161747; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6037CC4339E; Wed, 1 Feb 2023 10:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246592; bh=rSjLj6DEl6ERhmcCOg5Jo1VRWUjsSFCleSHNR8jtgbI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HdBu+eKwc4j0qwZvMb8tkK/AYvynMCuCBCqzduX7/wIaWrm4UO1cvIwy+2Wt/kyBa wnXToerMWGQr/a7hriPjKaqnwWlkdA0paA7QlgfuRsSAkbWFI1dBZAI+INl31K/O/t vKA6OqkQTkYpCzV0Q6bbfW7OniNxN3niTNoTFw0JYZZ1RTmSQcVaWtT/4AAIgM6btD Ugx/3uGtnGxq2wk27TfAvtyaeanap9uOfhvR5epYzLT2Ujt9uL2mcWl+ylgKfYLME0 qPpMtDuDGQXfdtGFxvvwiir0K9JQVK1mmx4Adq1p6Mai4RooEFIOkX5cHbmkaPKoR2 JXrW6Ojo6T54A== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAf-00043o-AD; Wed, 01 Feb 2023 11:16:53 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Leonard Crestez , Alexandre Bailon Subject: [PATCH 04/23] interconnect: imx: fix registration race Date: Wed, 1 Feb 2023 11:15:40 +0100 Message-Id: <20230201101559.15529-5-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623490186830478?= X-GMAIL-MSGID: =?utf-8?q?1756623490186830478?= The current interconnect provider registration interface is inherently racy as nodes are not added until the after adding the provider. This can specifically cause racing DT lookups to fail. Switch to using the new API where the provider is not registered until after it has been fully initialised. Fixes: f0d8048525d7 ("interconnect: Add imx core driver") Cc: stable@vger.kernel.org # 5.8 Cc: Leonard Crestez Cc: Alexandre Bailon Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio Tested-by: Luca Ceresoli --- drivers/interconnect/imx/imx.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/interconnect/imx/imx.c b/drivers/interconnect/imx/imx.c index 823d9be9771a..979ed610f704 100644 --- a/drivers/interconnect/imx/imx.c +++ b/drivers/interconnect/imx/imx.c @@ -295,6 +295,9 @@ int imx_icc_register(struct platform_device *pdev, provider->xlate = of_icc_xlate_onecell; provider->data = data; provider->dev = dev->parent; + + icc_provider_init(provider); + platform_set_drvdata(pdev, imx_provider); if (settings) { @@ -306,20 +309,18 @@ int imx_icc_register(struct platform_device *pdev, } } - ret = icc_provider_add(provider); - if (ret) { - dev_err(dev, "error adding interconnect provider: %d\n", ret); + ret = imx_icc_register_nodes(imx_provider, nodes, nodes_count, settings); + if (ret) return ret; - } - ret = imx_icc_register_nodes(imx_provider, nodes, nodes_count, settings); + ret = icc_provider_register(provider); if (ret) - goto provider_del; + goto err_unregister_nodes; return 0; -provider_del: - icc_provider_del(provider); +err_unregister_nodes: + imx_icc_unregister_nodes(&imx_provider->provider); return ret; } EXPORT_SYMBOL_GPL(imx_icc_register); @@ -328,9 +329,8 @@ void imx_icc_unregister(struct platform_device *pdev) { struct imx_icc_provider *imx_provider = platform_get_drvdata(pdev); + icc_provider_deregister(&imx_provider->provider); imx_icc_unregister_nodes(&imx_provider->provider); - - icc_provider_del(&imx_provider->provider); } EXPORT_SYMBOL_GPL(imx_icc_unregister); From patchwork Wed Feb 1 10:15:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51271 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp191855wrn; Wed, 1 Feb 2023 02:18:15 -0800 (PST) X-Google-Smtp-Source: AK7set8NXFVNtgfzNDUdiyqWJBmOJVchD6E0m3OfgwRnDlgUVzJUr2mJL3LD1izT7eZrZot3MHU5 X-Received: by 2002:a17:906:2b0d:b0:877:a9d2:e5e9 with SMTP id a13-20020a1709062b0d00b00877a9d2e5e9mr1924434ejg.42.1675246695490; Wed, 01 Feb 2023 02:18:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246695; cv=none; d=google.com; s=arc-20160816; b=FlZ/zuoTiTH6X+8C5MMskUe3Cr4zy67SC6CCw5A0lhlon7y4n3u6X32+kjHgqlu2qZ VossUA8xoHjgMGXKWhV2BqMMBCp5aJYxA5PPclEVUmdve9fB//4Jdibmv6wbsigsriEk qV9wGlEVPMFkyubRTanyn41k+WI8pffNdkBMlUqidUR3UrUYPGrBdprbMosxf/NiZ6/1 C31McUQOUX4zY9hoToczygJnXjWEd5nWUdzT+wX84v3ndIRlxFj67mRM9bd50+W55Yzt 8DVaT/AbDSeXdH7BrCQ2qtEVwNv0g+xPvnC4H1F05ATUxWszUNagQmfO+sbm68NOIZwy noSA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=w5Ud7UWRGn6SBClJXvHQmhzPD3ds/8m1XukJVAV22us=; b=m3f3J614D6BGhJVMR2bkwWy0KhDve2NHMlBlFbjP2fVHhUjYGU9xVubazNYTB05PYT 86J1udJMsFtS0l8T5VyEPm3xbbU8Vx1a0Z+RgxrjEiBPK5uRSLKnYEJnc91vZgUpuSfp 3KNi1iIYHwplqaMLykCSHhqAYDqsS2zpSzeMNZZsW6+TnwY9v8jQyMC4EoEz4NdmwqxF iK0WNBu93ovG0x+Mh7BGpwFh7rBc1rqTtHa63xq5Mf4MvlhVUgx/pCPup9nGJLjikPoq rjHbpw4gQut8XHjM84AWX+WFX2EVl7dF2qV8ZYI+rdd11hVQHdXttD3LdasKQd8KM9We ilRg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ultdZ0aU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z3-20020a17090674c300b00878561c0885si21481667ejl.450.2023.02.01.02.17.51; Wed, 01 Feb 2023 02:18:15 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ultdZ0aU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232126AbjBAKRE (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51998 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231157AbjBAKQh (ORCPT ); Wed, 1 Feb 2023 05:16:37 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 10CC22ED54; Wed, 1 Feb 2023 02:16:35 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id BF031B82156; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 589F1C4339B; Wed, 1 Feb 2023 10:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246592; bh=phHoojYppOTL0BiqO+RWcjhDeLQFCJqdWQpamIw1UYE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ultdZ0aUrQ4K3ppR/0jvADGGZ6Yt7OnPldEhMZ7fcTrfod0KotahBnoqUEkXZjoQf 0ldGn30n6CXMrmVLNe2z1vle2vGUHBFscqqK7lMqVGKC0ZzXwlWCrX6njOchd45Oq4 7Fsc+06f3T6XXMUczWAzBOp2827TZjEfU9lddcjtOyGeY6haoQuAn/odnj/H667skH w1YEjDeeqJOYpOGN/YIVHoFtu7O9RCTd52Td2hOpcvw8COiFRlbqw+JKZkBCLv5V7a 3syM1X8JvkYNMbhK43LqYv7LGRywNFoMAz1fL1f4cMWpc9GmtIiY04HPlU2KseqKmM 2p5k5jMzxb17g== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAf-00043q-DP; Wed, 01 Feb 2023 11:16:53 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 05/23] interconnect: qcom: osm-l3: fix registration race Date: Wed, 1 Feb 2023 11:15:41 +0100 Message-Id: <20230201101559.15529-6-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623478903846599?= X-GMAIL-MSGID: =?utf-8?q?1756623478903846599?= The current interconnect provider registration interface is inherently racy as nodes are not added until the after adding the provider. This can specifically cause racing DT lookups to fail: of_icc_xlate_onecell: invalid index 0 cpu cpu0: error -EINVAL: error finding src node cpu cpu0: dev_pm_opp_of_find_icc_paths: Unable to get path0: -22 qcom-cpufreq-hw: probe of 18591000.cpufreq failed with error -22 Switch to using the new API where the provider is not registered until after it has been fully initialised. Fixes: 5bc9900addaf ("interconnect: qcom: Add OSM L3 interconnect provider support") Cc: stable@vger.kernel.org # 5.7 Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio --- drivers/interconnect/qcom/osm-l3.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/interconnect/qcom/osm-l3.c b/drivers/interconnect/qcom/osm-l3.c index 5fa171087425..3a1cbfe3e481 100644 --- a/drivers/interconnect/qcom/osm-l3.c +++ b/drivers/interconnect/qcom/osm-l3.c @@ -158,8 +158,8 @@ static int qcom_osm_l3_remove(struct platform_device *pdev) { struct qcom_osm_l3_icc_provider *qp = platform_get_drvdata(pdev); + icc_provider_deregister(&qp->provider); icc_nodes_remove(&qp->provider); - icc_provider_del(&qp->provider); return 0; } @@ -245,14 +245,9 @@ static int qcom_osm_l3_probe(struct platform_device *pdev) provider->set = qcom_osm_l3_set; provider->aggregate = icc_std_aggregate; provider->xlate = of_icc_xlate_onecell; - INIT_LIST_HEAD(&provider->nodes); provider->data = data; - ret = icc_provider_add(provider); - if (ret) { - dev_err(&pdev->dev, "error adding interconnect provider\n"); - return ret; - } + icc_provider_init(provider); for (i = 0; i < num_nodes; i++) { size_t j; @@ -275,12 +270,15 @@ static int qcom_osm_l3_probe(struct platform_device *pdev) } data->num_nodes = num_nodes; + ret = icc_provider_register(provider); + if (ret) + goto err; + platform_set_drvdata(pdev, qp); return 0; err: icc_nodes_remove(provider); - icc_provider_del(provider); return ret; } From patchwork Wed Feb 1 10:15:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51268 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp191699wrn; Wed, 1 Feb 2023 02:17:56 -0800 (PST) X-Google-Smtp-Source: AK7set+2RQGucnFehAVbUtKKFSbyKUwnyA2oZynAUTu6+Nn5sVCGgDlAq7ckNA4XW8nkQXRVHurV X-Received: by 2002:a50:bb4d:0:b0:4a2:7833:e385 with SMTP id y71-20020a50bb4d000000b004a27833e385mr1329500ede.22.1675246676145; Wed, 01 Feb 2023 02:17:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246676; cv=none; d=google.com; s=arc-20160816; b=St13wFBzlPTnjXn9Mo8QvFUH7/44Xw3MKdG2Fz6SEy7RNMIiKfNwGfvVqLeIZOZCT9 FD/fdOuKzcUEKjY4DRRmzWdfWcWvFej1y9RpzaEGxSGrAHlXZr6OmOjS2gVdyzE+r6MW 6S4ei5JqbCDBF+epv21o8KScuwc1594mzePcB0wTQ45y3O5NnJSzY0AuDHJ8wbflkQO+ HHWnuFJbJYW5NfRZtfzwzbWtm4IjmYzyOAjlzrls+uvewZvDvFQYsbJuf/dakoHTRYA+ U3z+GnQNmqHUXxiyGUxHMYtQlZNpiDUNGuPsAS9SJ8Gm17JQxdMUBeUSWzrjfKARvoUn ZMEw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=0rVfKy5cUVnyu31mL8ovU8ilC7XIjw28ys7EnXkTLk0=; b=MlUzvMFE0le9yNRcAilS2mojJW8QbMBSZNZfBKD1eyd02mhoPHdZChXMbLfQObtS4B m/Ggm6gaDfB/Nr2K1dxjzlosGVGhRBcKO3d6IrBKFB1fkXTY7og+0x7n/726Tfxyb9PQ tTBHHoGHg8y2oulivD56xb6pK7an3oGYofAxN45zmTtSqU6IDmy+QadVMl1zhytYBsml XynmSY8MxDihdC3OmpF8GafuLT871bklniMW+I+wxbYrV393k3mm4cSFkqmC77DKGF/H 7zES4FXzctoeOFrWSeoz1OYXsHZB2xtOQhadl/iX7Kzxjqmoj+o9PGyp0A7wBt8sS4wv 3ENQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=oltNLyen; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p13-20020aa7cc8d000000b004a21a65f8a8si15769875edt.402.2023.02.01.02.17.20; Wed, 01 Feb 2023 02:17:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=oltNLyen; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232228AbjBAKQl (ORCPT + 99 others); Wed, 1 Feb 2023 05:16:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51928 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231362AbjBAKQe (ORCPT ); Wed, 1 Feb 2023 05:16:34 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0F70E4863F; Wed, 1 Feb 2023 02:16:34 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9C3B761752; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8DBEAC4332A; Wed, 1 Feb 2023 10:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246592; bh=PuI2y+ATIFAja48qSbWFbubXBT9of+fd6FspPtD7xKY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oltNLyenpK9EeuFPWsN55yTc+NWW5koqeNQi3VBoNpDpbmBslPZix20h+NprsKOwX 7AOiLvVwbXyniyEL0/FAmz1qQLScEnz+teo/5A4CUF08EHVBFv/tpmbdMlGfKN1Czc SY6BcD04lfyMZKQiEVEfGN3xjRr/h0VgPT4/tHekxsCwoGzpR8rvjj8jkNEUVyo1hm g5OCS6clJ5MvtTHEm0+60XfrdyZLgT138WblZmkkvsFt0tEucai8mgFOP1HjTl/oZz jLHwRVZRKaXMKM+jOJM9wFSIGs4HKmQRqRTdRFwhZICWxjR5apwWOjjZWbKLQT/FZs /ES9USwPd2vIA== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAf-00043s-Gc; Wed, 01 Feb 2023 11:16:53 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 06/23] interconnect: qcom: rpm: fix probe child-node error handling Date: Wed, 1 Feb 2023 11:15:42 +0100 Message-Id: <20230201101559.15529-7-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623458713697346?= X-GMAIL-MSGID: =?utf-8?q?1756623458713697346?= Make sure to clean up and release resources properly also in case probe fails when populating child devices. Fixes: e39bf2972c6e ("interconnect: icc-rpm: Support child NoC device probe") Cc: stable@vger.kernel.org # 5.17 Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio --- drivers/interconnect/qcom/icc-rpm.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/interconnect/qcom/icc-rpm.c b/drivers/interconnect/qcom/icc-rpm.c index df3196f72536..91778cfcbc65 100644 --- a/drivers/interconnect/qcom/icc-rpm.c +++ b/drivers/interconnect/qcom/icc-rpm.c @@ -541,8 +541,11 @@ int qnoc_probe(struct platform_device *pdev) platform_set_drvdata(pdev, qp); /* Populate child NoC devices if any */ - if (of_get_child_count(dev->of_node) > 0) - return of_platform_populate(dev->of_node, NULL, NULL, dev); + if (of_get_child_count(dev->of_node) > 0) { + ret = of_platform_populate(dev->of_node, NULL, NULL, dev); + if (ret) + goto err; + } return 0; err: From patchwork Wed Feb 1 10:15:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51266 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp191651wrn; Wed, 1 Feb 2023 02:17:49 -0800 (PST) X-Google-Smtp-Source: AK7set88AuX/3c9lVcm7uU0JPgTZd4zHOQNvQGaJ4Tuers59KrJMOhRpzMhvZqhLHSd5N13Avb5w X-Received: by 2002:a05:6402:3485:b0:49d:efdc:4f77 with SMTP id v5-20020a056402348500b0049defdc4f77mr8044052edc.38.1675246669000; Wed, 01 Feb 2023 02:17:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246668; cv=none; d=google.com; s=arc-20160816; b=UbT3HZTjyeN9Z3RehCOzWPSRCZ9OgcKofZKZWgMTOwOnhIxUQ+H+AQtOZZtnzpxn5r URqLbTxg4gZu7Zo9lU4MtlkbuCzgLjB3JI3bGxEnqs8Q7eLGVO2yC3n+iVyWqS+qsgsa ikKR1A5meoZpV5QCTpaxwOZFJNezp5etpz/t87irHLWWACGTcInMbyo4InZ3Ps6x0KYA U2rd5UnRB8IUM+iKixktQkm4kkZoVPTR35cKfizrNjTP82rxuj1CnbBFvWb994eZG/GC o5Vyn+erOTf+OT9sIv9TG4FRL7uPkgzf8OVqddSwld1sYUU1Y0sUuYghaRv9/B0uIx4+ y53Q== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=9xW0I8z2EZ0DrvXBoFLprAkSR//XZxKxcvlEbyKvDkI=; b=dwLdvfyYTWWqJKxK/Hoj+bvQRcAXai7+bsBGhw73xNA+D4/LgY5GgL1nkHULErObHs Nl+RGFx07EqrnBo1cDwZ+BRG/i5JXCn72cd1LPplPAP2U4LhrQo3jZCAmCmuINu4P+Hc U1gntMy7vVOJ9LfQFN2xUbTDlHlfQmjN/vm2UQ3tSlstAv7R2pE31sXUbNDatFfeXVwu KFnfJbh40/zoUqcIAQ6Q/ctUKRkiJoOjctNjhPGc+oIkTYZbnbq30mbenagVO6cr3CUH QH59PPgAx64KqsCRcO6ACV/IHKpREG1rd4QGw34syJdNZsyzVNFUOXv5Ij4EFv8vptw/ Hbgg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jnusNns8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q12-20020a50cc8c000000b004a091925e42si19656233edi.116.2023.02.01.02.17.24; Wed, 01 Feb 2023 02:17:48 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jnusNns8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232277AbjBAKQo (ORCPT + 99 others); Wed, 1 Feb 2023 05:16:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51926 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231801AbjBAKQe (ORCPT ); Wed, 1 Feb 2023 05:16:34 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E41EF3EFD5; Wed, 1 Feb 2023 02:16:33 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 80AFB61751; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8A0EFC4332D; Wed, 1 Feb 2023 10:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246592; bh=3ZA4545fQI8S0sUIbvtn7IX3oT84gFcfHkjp0CW1z7w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jnusNns8+ekGRz4eU3QdosvcxStBjz1nldTspeKVFXVxeH8ttnwipe47M45dIUapq XxeZhkwuZReM+XE1jUKbvMh0DLijmPNKTftg54EFrc3sawKeP9YvMdsv+6EKP/+Zlx 3AUCcFpI5YKCQB4JbpcaaXgPEbJ9fq730UuwwF9jtgSMZJNhtU0XDBybCqN6YBWcD5 1CP8dFvHNrjiNbVJLzIqXKnQ+bebDtyCFdW26szebi7VotkJzJsaVhhGlXpsh+xIM1 tmpU45HuuAjT/BMBFl4B3IHuS1lESaJaBU0EC3uMeOOyepQ1Dkb9+atWoLt2xEMXEs rL/KdXfaisSvw== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAf-00043u-JB; Wed, 01 Feb 2023 11:16:53 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Yassine Oudjana Subject: [PATCH 07/23] interconnect: qcom: rpm: fix probe PM domain error handling Date: Wed, 1 Feb 2023 11:15:43 +0100 Message-Id: <20230201101559.15529-8-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623451230602479?= X-GMAIL-MSGID: =?utf-8?q?1756623451230602479?= Make sure to disable clocks also in case attaching the power domain fails. Fixes: 7de109c0abe9 ("interconnect: icc-rpm: Add support for bus power domain") Cc: stable@vger.kernel.org # 5.17 Cc: Yassine Oudjana Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio --- drivers/interconnect/qcom/icc-rpm.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/interconnect/qcom/icc-rpm.c b/drivers/interconnect/qcom/icc-rpm.c index 91778cfcbc65..da595059cafd 100644 --- a/drivers/interconnect/qcom/icc-rpm.c +++ b/drivers/interconnect/qcom/icc-rpm.c @@ -498,8 +498,7 @@ int qnoc_probe(struct platform_device *pdev) if (desc->has_bus_pd) { ret = dev_pm_domain_attach(dev, true); - if (ret) - return ret; + goto err_disable_clks; } provider = &qp->provider; @@ -514,8 +513,7 @@ int qnoc_probe(struct platform_device *pdev) ret = icc_provider_add(provider); if (ret) { dev_err(dev, "error adding interconnect provider: %d\n", ret); - clk_bulk_disable_unprepare(qp->num_clks, qp->bus_clks); - return ret; + goto err_disable_clks; } for (i = 0; i < num_nodes; i++) { @@ -550,8 +548,9 @@ int qnoc_probe(struct platform_device *pdev) return 0; err: icc_nodes_remove(provider); - clk_bulk_disable_unprepare(qp->num_clks, qp->bus_clks); icc_provider_del(provider); +err_disable_clks: + clk_bulk_disable_unprepare(qp->num_clks, qp->bus_clks); return ret; } From patchwork Wed Feb 1 10:15:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51279 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192590wrn; Wed, 1 Feb 2023 02:20:10 -0800 (PST) X-Google-Smtp-Source: AK7set/PmUS6cfOAlp8rzJ/ZbuI3sY8kHk5Q9s/74PIfwTwudJRV5LpXnIFfVdFdZQa9LLuhVuUh X-Received: by 2002:a17:906:694c:b0:881:ad59:97f5 with SMTP id c12-20020a170906694c00b00881ad5997f5mr1633634ejs.2.1675246810291; Wed, 01 Feb 2023 02:20:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246810; cv=none; d=google.com; s=arc-20160816; b=e9tljPne/VB0AUC+1s0NZVzfVEqsz+alwpMJ/CZ9xKL9eEAk/9BUmGBVTN+O04p1YW jVnppZ9putUZdvVwBXZd960USL6r541HV2I/hFK02AvEW2fJXM3pTHhfdsAhYUV0Mvtx L/8XPv67d70r90KkLrFYDU7etUW1mKqjdFesjJFl0aNJjomqyz0NXh3jlxKxn1NSI98z Sek2076pOpdravm/X0msPnWEQHkt945pUvThYg2ehiuxKCiM3KoiHj+7a2fiy4M9vNfk xLqwiMpa8MX1SgpkUc7KgXMlfmp3FE6hZQLJh8VyDj8Sus8hlHSSIjYJhzPm3JpbfLWY 9Mig== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Nn9vmu5bp2+oEcZXQr83UQRwpOP+nuY5JpJ+VyQoZXg=; b=QOWb0QHF4oq+48BZJ2SYttRklikDbF/5MEemcXK66XDfDjA0e0vyTaUTWESap44Q3F PwZKoYtvMxl5F95Wzs8J3c+FOoPodiARJhhxKGuBZgsElQQ6R9WuFUKXSNLVzskiBrXx cdwLhhQDBVL4qMXLMMGsuhT4mHnbmWjCLrqPh0tWy9YHqAQwNdAoMsExq9Bp65Je4OqP bSuWqpNUz9Rz0Y+scZ1to5odNTaGnzpcdZfNpfNIfe4AFVindsVHblsLc9HpkDveTXer j600FIxAIQoswbpUZOhP73QBCWuQAPrMaSSd3VLYTW48C1xK+j5qwo5FUQV+ArugkI0g PfOQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="Mbw/yUWs"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id gn19-20020a1709070d1300b00878582add5esi30131617ejc.177.2023.02.01.02.19.47; Wed, 01 Feb 2023 02:20:10 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="Mbw/yUWs"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232403AbjBAKRP (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52002 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232094AbjBAKQh (ORCPT ); Wed, 1 Feb 2023 05:16:37 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C78872E0E1; Wed, 1 Feb 2023 02:16:35 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 7A5DEB8212E; Wed, 1 Feb 2023 10:16:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8DCD7C43332; Wed, 1 Feb 2023 10:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246592; bh=2R+fnciVEwp0KqBrx0Fp6TNbAF2jqwTGLSoOGZwTVrI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Mbw/yUWsL3YcDVf8XPq0Q3FXVNmLL+zLSbsUMy3uymroe9vCUA6YbQOqesAFToMey r5AIhYn7CjMLbOLXLCjC0WGFokIhMB78zxFQshPMBgu/j+DBQ0I37uNGXh38HoaQwY dPfhccKjXidnXA86gOHwE9mcx063wUM8HD7L0JphVjG5GK2L1kpwwGKSDNiw1qVf56 1vRJ3t0KFgPn2S2yE1USNcYS5aUEDjpP/QwoNh00B6bRKrSNnWs7XZip60pt0QiOen Zq/8xw+rh47+I/IqCNXwSt9O/BgXt94dOvWqoRLpCgslDNeYGl8zWAM07vgxs3d5wG z8X7Y7e9JJTCQ== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAf-00043y-MP; Wed, 01 Feb 2023 11:16:53 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Jun Nie , Georgi Djakov Subject: [PATCH 08/23] interconnect: qcom: rpm: fix registration race Date: Wed, 1 Feb 2023 11:15:44 +0100 Message-Id: <20230201101559.15529-9-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623599509589677?= X-GMAIL-MSGID: =?utf-8?q?1756623599509589677?= The current interconnect provider registration interface is inherently racy as nodes are not added until the after adding the provider. This can specifically cause racing DT lookups to fail. Switch to using the new API where the provider is not registered until after it has been fully initialised. Fixes: 62feb14ee8a3 ("interconnect: qcom: Consolidate interconnect RPM support") Fixes: 30c8fa3ec61a ("interconnect: qcom: Add MSM8916 interconnect provider driver") Cc: stable@vger.kernel.org # 5.7 Cc: Jun Nie Cc: Georgi Djakov Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio Reviewed-by: Jun Nie --- drivers/interconnect/qcom/icc-rpm.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/interconnect/qcom/icc-rpm.c b/drivers/interconnect/qcom/icc-rpm.c index da595059cafd..4d0997b210f7 100644 --- a/drivers/interconnect/qcom/icc-rpm.c +++ b/drivers/interconnect/qcom/icc-rpm.c @@ -502,7 +502,6 @@ int qnoc_probe(struct platform_device *pdev) } provider = &qp->provider; - INIT_LIST_HEAD(&provider->nodes); provider->dev = dev; provider->set = qcom_icc_set; provider->pre_aggregate = qcom_icc_pre_bw_aggregate; @@ -510,11 +509,7 @@ int qnoc_probe(struct platform_device *pdev) provider->xlate_extended = qcom_icc_xlate_extended; provider->data = data; - ret = icc_provider_add(provider); - if (ret) { - dev_err(dev, "error adding interconnect provider: %d\n", ret); - goto err_disable_clks; - } + icc_provider_init(provider); for (i = 0; i < num_nodes; i++) { size_t j; @@ -522,7 +517,7 @@ int qnoc_probe(struct platform_device *pdev) node = icc_node_create(qnodes[i]->id); if (IS_ERR(node)) { ret = PTR_ERR(node); - goto err; + goto err_remove_nodes; } node->name = qnodes[i]->name; @@ -536,19 +531,25 @@ int qnoc_probe(struct platform_device *pdev) } data->num_nodes = num_nodes; + ret = icc_provider_register(provider); + if (ret) + goto err_remove_nodes; + platform_set_drvdata(pdev, qp); /* Populate child NoC devices if any */ if (of_get_child_count(dev->of_node) > 0) { ret = of_platform_populate(dev->of_node, NULL, NULL, dev); if (ret) - goto err; + goto err_deregister_provider; } return 0; -err: + +err_deregister_provider: + icc_provider_deregister(provider); +err_remove_nodes: icc_nodes_remove(provider); - icc_provider_del(provider); err_disable_clks: clk_bulk_disable_unprepare(qp->num_clks, qp->bus_clks); @@ -560,9 +561,9 @@ int qnoc_remove(struct platform_device *pdev) { struct qcom_icc_provider *qp = platform_get_drvdata(pdev); + icc_provider_deregister(&qp->provider); icc_nodes_remove(&qp->provider); clk_bulk_disable_unprepare(qp->num_clks, qp->bus_clks); - icc_provider_del(&qp->provider); return 0; } From patchwork Wed Feb 1 10:15:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51277 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192237wrn; Wed, 1 Feb 2023 02:19:12 -0800 (PST) X-Google-Smtp-Source: AK7set+O6RENtRZ2RdmNw0y5RdtdJg2h9ne0tYYlLZrgdeQb9mTf1h8NskWDpjTHO/V4JIs3jMlq X-Received: by 2002:a17:906:ad96:b0:87b:d79f:9945 with SMTP id la22-20020a170906ad9600b0087bd79f9945mr1926334ejb.2.1675246752529; Wed, 01 Feb 2023 02:19:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246752; cv=none; d=google.com; s=arc-20160816; b=eBxz7uuN2HDRpp0akYQIcaAJHiTqMqTjjqx+I3ujh4kCR6nlMCKmTAH5upuNaUlxiE Dylb0tn6NtXw7WmYuE+iD8eJVfLy6fItfY5YkpMsbbIOzj96WpNs+BQLmOUqeCKglF09 cW1OcBbUE1LTOXESV7vBZXU8cQUWtl6e24CirN39HhWz/lblUBBNG3gFvlsh01x7ahK2 N4PNahVdUyDopQDMPRDMNUfkpacyoSJu5c68dXxbbVd54QI6PghrCrqEbk4/OGSbU5Ct ylxLUdusScoKYdMl+kiS+gz6XLmtBzNDwKv0y+W330TyYWkjI65l3sBlASDnK+A7UU+e /OCg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=gLtFmktTS31JL5N+/THkJIXuYA9/yhMaW6UqdP8cBOM=; b=KWc0KEOi0AWc1XXWkUen4KKVhjUD2ZWfkJX7nfcY5bio7sz7onuhWx/XqRNQU2Vt08 xwPAPprmPSK3sfTjrXpeJ1iGfXtdY193t/ZR/aItOjtbTf5C+MOj05VvX77ywh3XzyJo gq4+hgTYC22VXA+Wdb6Jr4m5apiyiunvKosvIvHfDfVClpFrzS7th5XU2Xr3M1wiwia1 yLcRxv+Mt9JsbEHyEJVC1QSBBboWDRa6nfsBdW0LPaAOpoXzCMfsJDZ7nm6HtMS/EHTl 1QtSSI6twKnMeqbBZndRjYj3gWW4zwFpp/JxD8pplhBjcVYwQuQGdWNtqcrHIcjNH4oM ev2Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ozmPnh0z; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l17-20020a170907915100b0088bf8e5331esi6117781ejs.853.2023.02.01.02.18.48; Wed, 01 Feb 2023 02:19:12 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ozmPnh0z; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232318AbjBAKQr (ORCPT + 99 others); Wed, 1 Feb 2023 05:16:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231989AbjBAKQe (ORCPT ); Wed, 1 Feb 2023 05:16:34 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 25AB14A201; Wed, 1 Feb 2023 02:16:34 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id ADA766174F; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9F9CFC43333; Wed, 1 Feb 2023 10:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246592; bh=mqziYJjbUJWRSrSis2BnZ/Mf5KJ1u6GxjZvx9Ve+zPk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ozmPnh0zuEX8o8cW1apdzCQl7iSQyb6OBgw2hPYohridr9xUab/CYR0/b76VkvvE4 Y++k5mAdhubXECg3DnqJet03UCXSrmWz201eXAlwUqhZnSykDE5sw/+X1AKcE7tjP6 j5Ru+UEbaLANRx+/0JnfbeXePmIgDqxC+czEAKvvWWC4fDqOiEW/5eRMGJgr9oRmel VqIpoYDAQgNlNmlyQBaCuRsZP2Yr0TWeFPlxsJwA2q9ZjPKm6ohoMt6Gd73A9gi0iy X3K5ErtUUXlY4OubsXV2M2Vmwd40Kts58eapjmE+56Onm7IxYLzqZxeFu7usCuuHfP bPNiUnIL2Q7Rg== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAf-000441-Ow; Wed, 01 Feb 2023 11:16:53 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Luca Weiss Subject: [PATCH 09/23] interconnect: qcom: rpmh: fix probe child-node error handling Date: Wed, 1 Feb 2023 11:15:45 +0100 Message-Id: <20230201101559.15529-10-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623538813112609?= X-GMAIL-MSGID: =?utf-8?q?1756623538813112609?= Make sure to clean up and release resources properly also in case probe fails when populating child devices. Fixes: 57eb14779dfd ("interconnect: qcom: icc-rpmh: Support child NoC device probe") Cc: stable@vger.kernel.org # 6.0 Cc: Luca Weiss Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio --- drivers/interconnect/qcom/icc-rpmh.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/interconnect/qcom/icc-rpmh.c b/drivers/interconnect/qcom/icc-rpmh.c index fd17291c61eb..5168bbf3d92f 100644 --- a/drivers/interconnect/qcom/icc-rpmh.c +++ b/drivers/interconnect/qcom/icc-rpmh.c @@ -235,8 +235,11 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev) platform_set_drvdata(pdev, qp); /* Populate child NoC devices if any */ - if (of_get_child_count(dev->of_node) > 0) - return of_platform_populate(dev->of_node, NULL, NULL, dev); + if (of_get_child_count(dev->of_node) > 0) { + ret = of_platform_populate(dev->of_node, NULL, NULL, dev); + if (ret) + goto err; + } return 0; err: From patchwork Wed Feb 1 10:15:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51281 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192634wrn; Wed, 1 Feb 2023 02:20:15 -0800 (PST) X-Google-Smtp-Source: AK7set8iVnCrMY1oau7PaFpUE1XhDhTb31tzUylT/WSTyvSnlick1jAqs02nJyDv6MkwUAuxFFMa X-Received: by 2002:a17:907:d38b:b0:879:767f:6e45 with SMTP id vh11-20020a170907d38b00b00879767f6e45mr1655483ejc.17.1675246815704; Wed, 01 Feb 2023 02:20:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246815; cv=none; d=google.com; s=arc-20160816; b=hT6kbSX7kc5+vl/xt5mLvKpzAY4v/MRH1T6E8WaMT6gU0k76+gtx4iw1iqjfECpF4c 80w9S+Pw83WPG/4bZ4Q8T0PoQpVRZXFflQOrI6N7N4+Dy6yLuqgFHghx1fCd0MFlkbIE eq+Nv2ygP3j3gYcrqqpCfkjEEuAseTfxEoedwaWd7LTBJAm+3zZQu5d8oNfmyQ6i6Ssu 2aUnBfBI4RBFCUBA6Tr+BL6l459bfVoiWSTmZG/uGbnpcEMCEekYJuQVkrwWrEH6SuZd QdFV6wJH8Qj5PKvrUTBA8go2FBcunzLc0QNQhLbspm9FXzUDNWRvev42KRxOXp0AmbKo mzGg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Yhhxy7QKDcCkS3YxF2WVRnTP9fhVHMCZuObIAgbI68Y=; b=HVoyYunDCxzDBsYUcQI1Vph+xVxW//FZoqQsbb4UHiROeSkQeQ7ZPZUBO1TOibEhKG 6ZYc3omaGtK4CFeHifP7CcK50yXngo5zdSeDWCtc2iLF0mFP+vNumr2DSnswKL+jp9lj YOlWPtgSJXUf8qzlyYTLynCaWTqsAmSYGZ+hDvjYtRQcu15dN+Izjx8/uqoo9Twg9QYR udaXVY1kiiibFrgbsP4pIP2pgwc5/GaRHCXb/yHvtCa97GyQZ9fCMrE1jsavcBoxGEoc 1I8+SsOZ4nngKxw+ElrSON8IkLsgUKHY6b2B0kohKHCxP7+VFQB6KqucRImVBVdvmBuQ PVJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Vn1HFGVf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n9-20020a056402514900b004a3cc96170dsi1535956edd.358.2023.02.01.02.19.52; Wed, 01 Feb 2023 02:20:15 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Vn1HFGVf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231963AbjBAKR2 (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52076 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232152AbjBAKQj (ORCPT ); Wed, 1 Feb 2023 05:16:39 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B24DA4F86D; Wed, 1 Feb 2023 02:16:37 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id D365DB82159; Wed, 1 Feb 2023 10:16:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A64F6C43335; Wed, 1 Feb 2023 10:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246592; bh=JZ8Di4CzHKn16RcSbx8LP5dTbxPMPcpqLRNP1ZpuGGk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Vn1HFGVf1GAUTFcDCThdyvv6IHi6lO71eQTmwJBKVGgav8zteruUU9TSwhFHumKhX 3S7b07Ph+A5au0m2gtIe490ppkXc436Rk7/d0MVjWJk5sTvpBQ3ybMithQ69RSbmqg hu2was/8X4btp97sAK9Efz4SOCrYpKz51hB9bgh67ewmesJ0XrxrDB3tMt5QqgBVw3 +ui/cF6i9ucFzGHeITYOEASwkNccGa6gZsWS3corWPKGC54JR0c0T+IWv7komicUAv xqzvgNZMFr5WfK3DvbWIO/l4pkFK/srEwjIRiLkag/XpaVPqGgsxW0aDPmn1c3JOsz 2fWd8T4wxjQvA== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAf-000444-SC; Wed, 01 Feb 2023 11:16:53 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 10/23] interconnect: qcom: rpmh: fix registration race Date: Wed, 1 Feb 2023 11:15:46 +0100 Message-Id: <20230201101559.15529-11-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623605044248020?= X-GMAIL-MSGID: =?utf-8?q?1756623605044248020?= The current interconnect provider registration interface is inherently racy as nodes are not added until the after adding the provider. This can specifically cause racing DT lookups to fail. Switch to using the new API where the provider is not registered until after it has been fully initialised. Fixes: 976daac4a1c5 ("interconnect: qcom: Consolidate interconnect RPMh support") Cc: stable@vger.kernel.org # 5.7 Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio --- drivers/interconnect/qcom/icc-rpmh.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/interconnect/qcom/icc-rpmh.c b/drivers/interconnect/qcom/icc-rpmh.c index 5168bbf3d92f..fdb5e58e408b 100644 --- a/drivers/interconnect/qcom/icc-rpmh.c +++ b/drivers/interconnect/qcom/icc-rpmh.c @@ -192,9 +192,10 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev) provider->pre_aggregate = qcom_icc_pre_aggregate; provider->aggregate = qcom_icc_aggregate; provider->xlate_extended = qcom_icc_xlate_extended; - INIT_LIST_HEAD(&provider->nodes); provider->data = data; + icc_provider_init(provider); + qp->dev = dev; qp->bcms = desc->bcms; qp->num_bcms = desc->num_bcms; @@ -203,10 +204,6 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev) if (IS_ERR(qp->voter)) return PTR_ERR(qp->voter); - ret = icc_provider_add(provider); - if (ret) - return ret; - for (i = 0; i < qp->num_bcms; i++) qcom_icc_bcm_init(qp->bcms[i], dev); @@ -218,7 +215,7 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev) node = icc_node_create(qn->id); if (IS_ERR(node)) { ret = PTR_ERR(node); - goto err; + goto err_remove_nodes; } node->name = qn->name; @@ -232,19 +229,27 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev) } data->num_nodes = num_nodes; + + ret = icc_provider_register(provider); + if (ret) + goto err_remove_nodes; + platform_set_drvdata(pdev, qp); /* Populate child NoC devices if any */ if (of_get_child_count(dev->of_node) > 0) { ret = of_platform_populate(dev->of_node, NULL, NULL, dev); if (ret) - goto err; + goto err_deregister_provider; } return 0; -err: + +err_deregister_provider: + icc_provider_deregister(provider); +err_remove_nodes: icc_nodes_remove(provider); - icc_provider_del(provider); + return ret; } EXPORT_SYMBOL_GPL(qcom_icc_rpmh_probe); @@ -253,8 +258,8 @@ int qcom_icc_rpmh_remove(struct platform_device *pdev) { struct qcom_icc_provider *qp = platform_get_drvdata(pdev); + icc_provider_deregister(&qp->provider); icc_nodes_remove(&qp->provider); - icc_provider_del(&qp->provider); return 0; } From patchwork Wed Feb 1 10:15:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51284 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192675wrn; Wed, 1 Feb 2023 02:20:21 -0800 (PST) X-Google-Smtp-Source: AK7set+b4q/AMmMGoBollJ3Nx81lI3s/BM+1UR8gLTVKZKYRj/n8vX9X/ioxgD/VB4B0jvQQCECh X-Received: by 2002:a50:a6d2:0:b0:4a2:5e23:3499 with SMTP id f18-20020a50a6d2000000b004a25e233499mr1396221edc.31.1675246821811; Wed, 01 Feb 2023 02:20:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246821; cv=none; d=google.com; s=arc-20160816; b=ZJvFJ+sDqkWXuBk+I5HTAgJwD1c7k1MKTI07T5DLOIN3xeNU9fEDeOahiA+KCikDcg g5QuLI9bt0PU7vShWqJmcdW4c5XVn6weleFUylDRjv9jFdKrFpRh8SBkuec90qnJkQpO U11fC9NQnxpSDwDd893KBjfAc2nPmaR5mpfxLqnP89/l0aFUx9ftM4LavPXrF7hsPvZG 2wno2fjxbwSSAxII0mdDhDb0Nv98Qq0ENc7/WSgaT0toPwLtYZ1l6Xt77JwsSOu0zMnu aYYXgl/c5VN9PGiQKDgikZSnuWu/cqpRWVaohnMSzooXTlbE0MI+qI02KP65G09C++B2 QbCA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=uZBsaZqvfSLITnEoKRf+iRgc2Ztq9vxEU+5jGi4gWec=; b=sTK+1109N/Uej+Ykmpk1+nIiJAkdGrfFzpdjDCn/cF05bz9aO0fa18oUmViWjNT0Cp YiBYh1RGdzzBUGTV/FM8H9dNI3K1aurx4sfZPFHuTmrrLkyV1N5i51YYjFpAcI5uA+VI bX8V/GIENccfh7q28ErO4s5ncldpezZbLRYF9qaiCKZ1HW9efLCVbAPnxKwPzVONHTlv KiUwjYHOv1PvHXPXHkrlI3suGIzg8XzzferEQyQ9WiO884wlpD7V8yfh7v6McIrq4pDu 7EvfYmte0SMPgk4Ja/dlpPm20b9Q3Qa7uRDL+EpbCsqpTH8zAAAlHSIZNmkclxDbvYcn /dcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=hqJBPzcR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dy19-20020a05640231f300b004a3fb971f7dsi921487edb.422.2023.02.01.02.19.58; Wed, 01 Feb 2023 02:20:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=hqJBPzcR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232498AbjBAKRz (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51978 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232030AbjBAKQf (ORCPT ); Wed, 1 Feb 2023 05:16:35 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 83F824ED23; Wed, 1 Feb 2023 02:16:34 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id C998561755; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C52E9C43230; Wed, 1 Feb 2023 10:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246592; bh=uWvRBWaOg9yVHNw7lplU7Uat5HYen4NsCodwCSsrbnQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hqJBPzcRNNyyQ9/wJzG+Ou/WAH2TFjFHksiKYmSPOE06Uy5boycICcf09lZC6bBPG TRPVELINUc/lmgK99EnILv6iAZS/uB+yQKrxNvoiDKKbkTHCW5/E38/3n09rmFjMEs vx+9dtGXEj4DG1RS5928md3ZZSHAMkuazk6k2ZnFL9h/FURG7+QgPZLUk1opfJJ6fj ASm8xA5AoYGVPjs+/XBY3nAlEV9fqPIIuxBi0quoXWnN2Vq2nacBv8kNLgYxsgUvM0 S6pLNCAKTJCrmN4eqmY/ko5z5cauzNaEnSMGdUUGdI3ll1EuuR2vsiNfDyI+l2TiTg psLKU9X8lE2UQ== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAf-000448-Ui; Wed, 01 Feb 2023 11:16:53 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Brian Masney Subject: [PATCH 11/23] interconnect: qcom: msm8974: fix registration race Date: Wed, 1 Feb 2023 11:15:47 +0100 Message-Id: <20230201101559.15529-12-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623611146100099?= X-GMAIL-MSGID: =?utf-8?q?1756623611146100099?= The current interconnect provider registration interface is inherently racy as nodes are not added until the after adding the provider. This can specifically cause racing DT lookups to fail. Switch to using the new API where the provider is not registered until after it has been fully initialised. Fixes: 4e60a9568dc6 ("interconnect: qcom: add msm8974 driver") Cc: stable@vger.kernel.org # 5.5 Cc: Brian Masney Signed-off-by: Johan Hovold Reviewed-by: Brian Masney Reviewed-by: Konrad Dybcio --- drivers/interconnect/qcom/msm8974.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/drivers/interconnect/qcom/msm8974.c b/drivers/interconnect/qcom/msm8974.c index 5ea192f1141d..1828deaca443 100644 --- a/drivers/interconnect/qcom/msm8974.c +++ b/drivers/interconnect/qcom/msm8974.c @@ -692,7 +692,6 @@ static int msm8974_icc_probe(struct platform_device *pdev) return ret; provider = &qp->provider; - INIT_LIST_HEAD(&provider->nodes); provider->dev = dev; provider->set = msm8974_icc_set; provider->aggregate = icc_std_aggregate; @@ -700,11 +699,7 @@ static int msm8974_icc_probe(struct platform_device *pdev) provider->data = data; provider->get_bw = msm8974_get_bw; - ret = icc_provider_add(provider); - if (ret) { - dev_err(dev, "error adding interconnect provider: %d\n", ret); - goto err_disable_clks; - } + icc_provider_init(provider); for (i = 0; i < num_nodes; i++) { size_t j; @@ -712,7 +707,7 @@ static int msm8974_icc_probe(struct platform_device *pdev) node = icc_node_create(qnodes[i]->id); if (IS_ERR(node)) { ret = PTR_ERR(node); - goto err_del_icc; + goto err_remove_nodes; } node->name = qnodes[i]->name; @@ -729,15 +724,16 @@ static int msm8974_icc_probe(struct platform_device *pdev) } data->num_nodes = num_nodes; + ret = icc_provider_register(provider); + if (ret) + goto err_remove_nodes; + platform_set_drvdata(pdev, qp); return 0; -err_del_icc: +err_remove_nodes: icc_nodes_remove(provider); - icc_provider_del(provider); - -err_disable_clks: clk_bulk_disable_unprepare(qp->num_clks, qp->bus_clks); return ret; @@ -747,9 +743,9 @@ static int msm8974_icc_remove(struct platform_device *pdev) { struct msm8974_icc_provider *qp = platform_get_drvdata(pdev); + icc_provider_deregister(&qp->provider); icc_nodes_remove(&qp->provider); clk_bulk_disable_unprepare(qp->num_clks, qp->bus_clks); - icc_provider_del(&qp->provider); return 0; } From patchwork Wed Feb 1 10:15:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51282 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192635wrn; Wed, 1 Feb 2023 02:20:15 -0800 (PST) X-Google-Smtp-Source: AK7set/7ktzBaCEkSzbi0eKbqEwFzg2ASTSDSUm5CtnithV64qez0EybMnh+24Kowu0aqMf9Bmxs X-Received: by 2002:a05:6402:31ea:b0:4a3:43c1:843d with SMTP id dy10-20020a05640231ea00b004a343c1843dmr1179276edb.17.1675246815800; Wed, 01 Feb 2023 02:20:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246815; cv=none; d=google.com; s=arc-20160816; b=szFuf6rqVE5y+0k5ZGIn6oWh288/6e62ctdx+gO4nNSPfALN6DCnF5ogpVMCAu2I2V uoVrkcqItDeAWUM+1IPTqQLBABKuRhhpmGfzFl/0lz4QIxl3nYlVyOVmCF8ryL6FSmHF Y/2QNeRFyyjUt/jST9Yh+GOlJCO7WdNbsdffWxnPqoNmD78ooze745ccSCabnaQ9mbRF wlBEgr+YV4dGOLS+G+Fwys+ArkqacSYLzaDB1DOtQxfnVLQzrpe6az+azXyrXoOr8Rtg 1XwAaEnqklZtV4LDonsT1m/TBMP1uMeI3AdI9fgUcWc5Qxnyg8Rmpb7YhhOCrBa+LQzz e1BQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=h0ybdRXnGEioGQtYUhKNwuCIwI82u1Z/xo5ngTedwfM=; b=y6/HNFEJCQWtDc7PkBy+jRa/+x9nkBaw2dvPJEJDr6V8NhO7pE01apCGh/i37SzBP7 I1GryclRJl3z580QdsYVIVbra7iK+BW+9ZdN8S8GFaNEcFvm87cHlo9z7kQe0eC7ZZLs qNxoE1KFJ5cfTKiI9NaTqvmmAM3DFlgjDo5FGVLJGAK9Xd2DSI0NBe6pdDSz4XmrbJLS Qc2aecAYjOFb6kJJ47U2jMJyAHJfeX7k3BKnD4sZ4jZHszN4KHVDsv/B0402f1Q60yyv 7HH2p8s0aoWDaV1o+AV9PBgJxKXGBdemuoWiRz+nuUt9pxFFzXrdD6VgxGi5U45Ky2Uq /ozw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=GSj50QqS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id gk4-20020a17090790c400b00886971a7fc7si12332938ejb.732.2023.02.01.02.19.52; Wed, 01 Feb 2023 02:20:15 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=GSj50QqS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232406AbjBAKRW (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52074 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232148AbjBAKQj (ORCPT ); Wed, 1 Feb 2023 05:16:39 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ADFE94A201; Wed, 1 Feb 2023 02:16:37 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id E4B3EB8215A; Wed, 1 Feb 2023 10:16:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E0FC2C4323C; Wed, 1 Feb 2023 10:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246592; bh=l0VN7msG9L+s5ijjJrCbTiHxIlXGehCmox8V3hFK5UU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GSj50QqSIG0/gLjRUheGo/84VIuOPFzdLM3noqHeQSqElOphv+CLzLGUWROMm1uJb gEG+/c0B2csR1hEuJ8UIN4iTjf6gUMPoLZ2KtX6pwXE5CPp08Bw6brh/erB9OsxxO9 bpRAdDY6acHV+rJkczpTvQInlqUafg/qtOKjEnPvQlPcLZJRifacdtdRqHJFgw1LJ3 AhwDUzwi2iWoOEem7wI4J/fYoMxo1eWQwA5pGDsArdTZh4AE3WrlTqdSXbQQPHFWO+ ma+8G0mPAdds0z4OfIHFdtYUqQ0aS/6AY+qhSiaxbF6zotfFKpUKakdFR+kZ4u5Gom GT/+bZb6tI+cg== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAg-00044B-1h; Wed, 01 Feb 2023 11:16:54 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Vinod Koul Subject: [PATCH 12/23] interconnect: qcom: sm8450: fix registration race Date: Wed, 1 Feb 2023 11:15:48 +0100 Message-Id: <20230201101559.15529-13-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623605239879678?= X-GMAIL-MSGID: =?utf-8?q?1756623605239879678?= The current interconnect provider registration interface is inherently racy as nodes are not added until the after adding the provider. This can specifically cause racing DT lookups to fail. Switch to using the new API where the provider is not registered until after it has been fully initialised. Fixes: fafc114a468e ("interconnect: qcom: Add SM8450 interconnect provider driver") Cc: stable@vger.kernel.org # 5.17 Cc: Vinod Koul Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio Reviewed-by: Vinod Koul --- drivers/interconnect/qcom/sm8450.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/interconnect/qcom/sm8450.c b/drivers/interconnect/qcom/sm8450.c index e3a12e3d6e06..c7a8bbf102a3 100644 --- a/drivers/interconnect/qcom/sm8450.c +++ b/drivers/interconnect/qcom/sm8450.c @@ -1876,9 +1876,10 @@ static int qnoc_probe(struct platform_device *pdev) provider->pre_aggregate = qcom_icc_pre_aggregate; provider->aggregate = qcom_icc_aggregate; provider->xlate_extended = qcom_icc_xlate_extended; - INIT_LIST_HEAD(&provider->nodes); provider->data = data; + icc_provider_init(provider); + qp->dev = &pdev->dev; qp->bcms = desc->bcms; qp->num_bcms = desc->num_bcms; @@ -1887,12 +1888,6 @@ static int qnoc_probe(struct platform_device *pdev) if (IS_ERR(qp->voter)) return PTR_ERR(qp->voter); - ret = icc_provider_add(provider); - if (ret) { - dev_err(&pdev->dev, "error adding interconnect provider\n"); - return ret; - } - for (i = 0; i < qp->num_bcms; i++) qcom_icc_bcm_init(qp->bcms[i], &pdev->dev); @@ -1905,7 +1900,7 @@ static int qnoc_probe(struct platform_device *pdev) node = icc_node_create(qnodes[i]->id); if (IS_ERR(node)) { ret = PTR_ERR(node); - goto err; + goto err_remove_nodes; } node->name = qnodes[i]->name; @@ -1919,12 +1914,17 @@ static int qnoc_probe(struct platform_device *pdev) } data->num_nodes = num_nodes; + ret = icc_provider_register(provider); + if (ret) + goto err_remove_nodes; + platform_set_drvdata(pdev, qp); return 0; -err: + +err_remove_nodes: icc_nodes_remove(provider); - icc_provider_del(provider); + return ret; } @@ -1932,8 +1932,8 @@ static int qnoc_remove(struct platform_device *pdev) { struct qcom_icc_provider *qp = platform_get_drvdata(pdev); + icc_provider_deregister(&qp->provider); icc_nodes_remove(&qp->provider); - icc_provider_del(&qp->provider); return 0; } From patchwork Wed Feb 1 10:15:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51287 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192693wrn; Wed, 1 Feb 2023 02:20:24 -0800 (PST) X-Google-Smtp-Source: AK7set+7D7jM/ak1G38/dBAIEeXTKuA7iBEoOuNdhzfVO1yfxBCdI5h5rAZExgZFFW128S6b0Klz X-Received: by 2002:a17:906:8a5b:b0:7c0:efb9:bc0e with SMTP id gx27-20020a1709068a5b00b007c0efb9bc0emr1798496ejc.62.1675246824810; Wed, 01 Feb 2023 02:20:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246824; cv=none; d=google.com; s=arc-20160816; b=SAsx83PpRjhnerBugpfnxwl2jsHTLM5R2FgGgLcWLcE1B8OhiinhVX7xxBbvEy+bF8 8AQAED+IVVKaMz4KoVxrWn58MoPV/62yczCXi7Dxt5NICvknwUc7Cip6o8z3T4ro/PnK d+iKGTJwds4JQq/NcGlANcomJmKWXg7vpAvn6sMmVe/66B0OeUqFjo/nRKrFhgf2YpSL SAR29Lsl2+sdmORmr/TPib9c8g9uqggql4N9BP1skrSq8/kpqbhn/xP4ZGeUtyi8D3br A43B9Aax74abb3QTngalK4ZTHzQm7HxbimzoxWgruGEM29Z3Z/QigZIrkr4xls6iNavf eFNA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ZHsEFtwig4CRxV1au18XcCl6MWO2Nq1IlafqgSk9kWg=; b=hLE6ByHQ53gCePdtrcKGaDohZGmsS/8uZZzGz8YuYixTxwG5cRLiiCHwbK262mbeCK ErmkFEIWlpE2/xRc01IbZxag1Q17zKngt8PTRBP7iyS8Xgjq/KvrLcOpIFtKPOpnWdXd b8vEnzf2d+5wtQsmxR8LRt8+fUu6hZX9xidxgAuUwkQ5Nhayftdo/U36kOoWoyHFboHd GOmOsbwo1Z7A7JbMqhekoX6HHivC7VQgMaeL8Jap/N1vE3zx4qpI74j+veQG3BEojpz5 lr8eB7GaDA6amnYOq6MDxz03kMHeX4cLsuLOTzrekdvvahcDIlKyPSOnGl/g2YAnzT6U ImSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Y3t6mpcR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ds7-20020a0564021cc700b00480e42f3032si21389339edb.305.2023.02.01.02.20.01; Wed, 01 Feb 2023 02:20:24 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Y3t6mpcR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232511AbjBAKR6 (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51954 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232018AbjBAKQf (ORCPT ); Wed, 1 Feb 2023 05:16:35 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 81E994E533; Wed, 1 Feb 2023 02:16:34 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id DA34261756; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E55CAC4323E; Wed, 1 Feb 2023 10:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246593; bh=DopQjRozUlqLm8kLLOiYmoJfcthKaCplFrQrtxG3j4o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y3t6mpcRXV0ZYGmIgJ8VKte6Xf6yMsefLMGHNVd5cR9LNCLofo3+VpLIGQ58jUjrQ kuyZhPev32rK9pmni6WgCf0cM4c6ZWGM3xQlaZQ+PD9UWhEYlRexFN4RXtf+t/16rV A9N+IR+FAU9CVOiZ79EX4GmkS/mHvmN1QfJ558IL52g5btRJaPXSAdhKxOAsynt0qH SEW0tLvqwzmqQrgIOJIC00K3fChnSvlvsJMFrmmSBSCjC0dbeAFj4/HuVYoA/Wj7L1 8lUSVJGAj1covok8bXtFis5xVMvInuJEqCbxps55aSQu7j/wlVL4z4X500Opk8zzw5 gBlsNepeoN3ow== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAg-00044D-4G; Wed, 01 Feb 2023 11:16:54 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , Abel Vesa Subject: [PATCH 13/23] interconnect: qcom: sm8550: fix registration race Date: Wed, 1 Feb 2023 11:15:49 +0100 Message-Id: <20230201101559.15529-14-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623614367377027?= X-GMAIL-MSGID: =?utf-8?q?1756623614367377027?= The current interconnect provider registration interface is inherently racy as nodes are not added until the after adding the provider. This can specifically cause racing DT lookups to fail. Switch to using the new API where the provider is not registered until after it has been fully initialised. Fixes: e6f0d6a30f73 ("interconnect: qcom: Add SM8550 interconnect provider driver") Cc: Abel Vesa Signed-off-by: Johan Hovold Reviewed-by: Abel Vesa Reviewed-by: Konrad Dybcio --- drivers/interconnect/qcom/sm8550.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/interconnect/qcom/sm8550.c b/drivers/interconnect/qcom/sm8550.c index 54fa027ab961..7ab492ca8fe0 100644 --- a/drivers/interconnect/qcom/sm8550.c +++ b/drivers/interconnect/qcom/sm8550.c @@ -2197,9 +2197,10 @@ static int qnoc_probe(struct platform_device *pdev) provider->pre_aggregate = qcom_icc_pre_aggregate; provider->aggregate = qcom_icc_aggregate; provider->xlate_extended = qcom_icc_xlate_extended; - INIT_LIST_HEAD(&provider->nodes); provider->data = data; + icc_provider_init(provider); + qp->dev = &pdev->dev; qp->bcms = desc->bcms; qp->num_bcms = desc->num_bcms; @@ -2208,12 +2209,6 @@ static int qnoc_probe(struct platform_device *pdev) if (IS_ERR(qp->voter)) return PTR_ERR(qp->voter); - ret = icc_provider_add(provider); - if (ret) { - dev_err_probe(&pdev->dev, ret, - "error adding interconnect provider\n"); - return ret; - } for (i = 0; i < qp->num_bcms; i++) qcom_icc_bcm_init(qp->bcms[i], &pdev->dev); @@ -2227,7 +2222,7 @@ static int qnoc_probe(struct platform_device *pdev) node = icc_node_create(qnodes[i]->id); if (IS_ERR(node)) { ret = PTR_ERR(node); - goto err; + goto err_remove_nodes; } node->name = qnodes[i]->name; @@ -2241,12 +2236,17 @@ static int qnoc_probe(struct platform_device *pdev) } data->num_nodes = num_nodes; + ret = icc_provider_register(provider); + if (ret) + goto err_remove_nodes; + platform_set_drvdata(pdev, qp); return 0; -err: + +err_remove_nodes: icc_nodes_remove(provider); - icc_provider_del(provider); + return ret; } @@ -2254,8 +2254,8 @@ static int qnoc_remove(struct platform_device *pdev) { struct qcom_icc_provider *qp = platform_get_drvdata(pdev); + icc_provider_deregister(&qp->provider); icc_nodes_remove(&qp->provider); - icc_provider_del(&qp->provider); return 0; } From patchwork Wed Feb 1 10:15:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51274 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192098wrn; Wed, 1 Feb 2023 02:18:51 -0800 (PST) X-Google-Smtp-Source: AK7set8p0BTmt30mikWX0bc5t6JX0KGi45IxOJccXGIaCD/T3apQYT23QZ8PwOtAKMGur4RgP4KZ X-Received: by 2002:a17:906:9c95:b0:872:6bd0:d2b with SMTP id fj21-20020a1709069c9500b008726bd00d2bmr1939455ejc.45.1675246731280; Wed, 01 Feb 2023 02:18:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246731; cv=none; d=google.com; s=arc-20160816; b=jcdlxIVhVk+bzkyV0jXWRsC2i8wPdHZ5VUbNRjpt852sapYZcToMDXNhqnImDmZPA1 CAljUHMPyp0KZNiG/RC1Y2fEL211Bznrzlfj59bQIMBrfA6vgiLXF0MXiKfUHBWEOPCO 87Hyu0ZMv+LvmM0JOhdFaGLMS6wmjK72Zv/+As4+EiDpIvNuEBXEpQSm0xZ34PGd9/GW Xnr14mHmt4h7NKjKypD3LMqkZPecDt/jxe8U3iu7Aarb9fN7KgS6dc2nEK9gHDU2QUD5 6zFD14vZO6KqGSvNieEAuK1CFeR567o51JhMolLJ1syBcWd0mFLM3AJbwNgmn/7LiX+0 ft2w== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=KHMfahHju2QEW44ABJqEzokkquW9prP8jrWMmvmK3x0=; b=T2tbsty12TmyC/tzZooFYIS0Vgl4xhwCIJI3erEVkBByacB+M1kA4T0kLEhJyo5UEw 9doS1+A0o0GEMOkUcyeVMinKLIvqDPjwAuhq/2GREkTRXhZRyMTY0PtF8oFjjlbp66+i MyxFrJrE4yfKrRGw06RYhpg1shOb0YA1EZwN9y/AaAYqJOMgcced7a9jzbg0upcWWQCT aLbWQfS8pIA75me9nTVIS4xU09B3xF3JMRtW+1WeMnBjW53Zf/xZPkgdFdOGhhQ0o+1P dE11ihc0pRWqy501nTHb+invfxqSf0gJ67ItDr1ItRTapQncteS3MdkLijtV9RiHF5Jx 6Oig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=LNsGODld; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t12-20020a170906948c00b008885f4666d2si10671409ejx.963.2023.02.01.02.18.18; Wed, 01 Feb 2023 02:18:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=LNsGODld; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232456AbjBAKRo (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52088 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232165AbjBAKQj (ORCPT ); Wed, 1 Feb 2023 05:16:39 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 227BD53542; Wed, 1 Feb 2023 02:16:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 1A396B81FDA; Wed, 1 Feb 2023 10:16:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0F477C4361C; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246593; bh=4DlVblB8F3elgXtYl/ybK6UQCtFfPIALduJwWumbzVs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LNsGODldlO93I8GvVgFCiD7Z+2kCq1rZ3tqmRwXziFuyep550BZXGHVg+lVKTaCzf HO2c0hp0tHSBwCHl1eCEcew3mjkVJlWmtXLbcWUk7q1jmVvAfTW0E1z7VjOSTIGuuT Ga2XbQhAQ2L8VswsOei8+SuYWAMwCdeaZpTVMsq39MI+mWQy2aVt3oWW74CEUJQBv0 TJKX9kMxvPeL39gogJyYEWdZNC/tWHV6F24wicVuAFaP/845NbUL8XpzGbzAFh6/v1 fRpw5ArSogRCx3n1KKCFyoDJR3o4vorvkivtBJIRqbm0oZ9s7LEXrfWmMwG1gIx5P2 e77bCfdMJ97xg== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAg-00044G-7X; Wed, 01 Feb 2023 11:16:54 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 14/23] interconnect: exynos: fix node leak in probe PM QoS error path Date: Wed, 1 Feb 2023 11:15:50 +0100 Message-Id: <20230201101559.15529-15-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623516056543943?= X-GMAIL-MSGID: =?utf-8?q?1756623516056543943?= Make sure to add the newly allocated interconnect node to the provider before adding the PM QoS request so that the node is freed on errors. Fixes: 2f95b9d5cf0b ("interconnect: Add generic interconnect driver for Exynos SoCs") Cc: stable@vger.kernel.org # 5.11 Cc: Sylwester Nawrocki Signed-off-by: Johan Hovold Reviewed-by: Krzysztof Kozlowski --- drivers/interconnect/samsung/exynos.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/interconnect/samsung/exynos.c b/drivers/interconnect/samsung/exynos.c index 6559d8cf8068..e70665899482 100644 --- a/drivers/interconnect/samsung/exynos.c +++ b/drivers/interconnect/samsung/exynos.c @@ -149,6 +149,9 @@ static int exynos_generic_icc_probe(struct platform_device *pdev) &priv->bus_clk_ratio)) priv->bus_clk_ratio = EXYNOS_ICC_DEFAULT_BUS_CLK_RATIO; + icc_node->data = priv; + icc_node_add(icc_node, provider); + /* * Register a PM QoS request for the parent (devfreq) device. */ @@ -157,9 +160,6 @@ static int exynos_generic_icc_probe(struct platform_device *pdev) if (ret < 0) goto err_node_del; - icc_node->data = priv; - icc_node_add(icc_node, provider); - icc_parent_node = exynos_icc_get_parent(bus_dev->of_node); if (IS_ERR(icc_parent_node)) { ret = PTR_ERR(icc_parent_node); From patchwork Wed Feb 1 10:15:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51267 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp191682wrn; Wed, 1 Feb 2023 02:17:53 -0800 (PST) X-Google-Smtp-Source: AK7set9En789cYLIAJH6FjRez+M02W7SQ8rNbzMZkCgtjupbyR1+0vToY1KYfLsC01JKsioNaR7r X-Received: by 2002:a17:906:30c1:b0:886:4ca1:39f1 with SMTP id b1-20020a17090630c100b008864ca139f1mr1613096ejb.73.1675246673816; Wed, 01 Feb 2023 02:17:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246673; cv=none; d=google.com; s=arc-20160816; b=eDwULglsfW6elCWO6R0ExCZZZnxsDG9rlU8MBVOMogFX2x6aKPrYi22DYaquxUlQX6 9khW+QDZs6Vxb0Z7KyDhC6XdtEj8mK1HQi3EMdQ5af5hsn3mM+9jvhemrqhVwXPBt8VX 23U/iHAywJjoOJLpWCMTJCgkEyUZdQdTEcmsN6hr8RYchigwri6pe0/LoZzB/fjl6K0O otlHj8Or1LAdra8KE56DjjtPXiHW7U4cHyl7vOdXtSDtMWSqyEMiBLUVrrxb0rR8g3Nu oyrubvWKbx+pB6hwkBXSJa1NNPgfIqIsMpED0AM3o08VzJjynJA6KRPbKIl03Vpv8hSo weHA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=PP5+hO98CJZ4ix4j5+tmXqTXcMXDbc43nskjLL4PEjA=; b=VEX9z1AnUWXZ2q3k0VGrwXEL5pcS1BhrL/DpMu5WnBaiOE7I3u33jg63HwaHaDRzSw okgtOlmkBj8ozId9/0zX0k9r4tuCd16uLZDo+C4rN/6rM997bXfX7wnm/TTlALFfscAu p5MdLgNM39s/3fpQOgkbwG4fBaPIFmsjkc9y6RLaspBz8wZ+6FHZFXLXHMV72MvowyK1 k2LcFWjgDdYkzfHi8qnOPF1nokpGiNVn1PJxwAS7YR+A+lWi8e5dtyWT/qv/3lq0+LK5 54KOb2cV22BgdHUbTg8wiiatDGzKRDB0O57pK4i2XNll94GwiDlJycRxrCQaq6HeRNCd ZThw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="sz/RSIN6"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 17-20020a17090602d100b00888161349d7si10472595ejk.662.2023.02.01.02.17.29; Wed, 01 Feb 2023 02:17:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="sz/RSIN6"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230244AbjBAKQu (ORCPT + 99 others); Wed, 1 Feb 2023 05:16:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51956 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232019AbjBAKQf (ORCPT ); Wed, 1 Feb 2023 05:16:35 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8FF524ED3E; Wed, 1 Feb 2023 02:16:34 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 02D0661757; Wed, 1 Feb 2023 10:16:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 235EDC4361B; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246593; bh=0nF8bFxY3P5D9tTctpmyCeHRuEBYqHVlVkGhiXKBwvI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sz/RSIN67O56ujGi0CSF/0DVIJH32aKT1O15exs+nQ7Qbiz3JZaX8YQnhqQOhcVYF IExipRlxc1qw0prEIMH9jsgFFHERR0sGSJ/DKvik0ImXY+wpwX7uoUTUKbGSsU73YT VmDA17WCjEzSZ7JUu8WsIxEubtswYy/r5+pDsbncIfSCheRmzfbtlm2nQz1/XVOiIP Ep4+nEojXdkXUNdPmdULXeyPfiJ0EYWHvbQiN2PLftsmWMX8HmezLS+JfbLeEI5OjQ tU8X3ffKs8YfJAaz0uCXpc5t7NgbHZj9zOBCS+g+zU00yngr5ek6MDRNxTUeQRdrPP UPLkdGa4aY6Aw== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAg-00044K-Am; Wed, 01 Feb 2023 11:16:54 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 15/23] interconnect: exynos: fix registration race Date: Wed, 1 Feb 2023 11:15:51 +0100 Message-Id: <20230201101559.15529-16-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623455880964508?= X-GMAIL-MSGID: =?utf-8?q?1756623455880964508?= The current interconnect provider registration interface is inherently racy as nodes are not added until the after adding the provider. This can specifically cause racing DT lookups to trigger a NULL-pointer deference when either a NULL pointer or not fully initialised node is returned from exynos_generic_icc_xlate(). Switch to using the new API where the provider is not registered until after it has been fully initialised. Fixes: 2f95b9d5cf0b ("interconnect: Add generic interconnect driver for Exynos SoCs") Cc: stable@vger.kernel.org # 5.11 Cc: Sylwester Nawrocki Signed-off-by: Johan Hovold Reviewed-by: Krzysztof Kozlowski --- drivers/interconnect/samsung/exynos.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/interconnect/samsung/exynos.c b/drivers/interconnect/samsung/exynos.c index e70665899482..72e42603823b 100644 --- a/drivers/interconnect/samsung/exynos.c +++ b/drivers/interconnect/samsung/exynos.c @@ -98,12 +98,13 @@ static int exynos_generic_icc_remove(struct platform_device *pdev) struct exynos_icc_priv *priv = platform_get_drvdata(pdev); struct icc_node *parent_node, *node = priv->node; + icc_provider_deregister(&priv->provider); + parent_node = exynos_icc_get_parent(priv->dev->parent->of_node); if (parent_node && !IS_ERR(parent_node)) icc_link_destroy(node, parent_node); icc_nodes_remove(&priv->provider); - icc_provider_del(&priv->provider); return 0; } @@ -132,15 +133,11 @@ static int exynos_generic_icc_probe(struct platform_device *pdev) provider->inter_set = true; provider->data = priv; - ret = icc_provider_add(provider); - if (ret < 0) - return ret; + icc_provider_init(provider); icc_node = icc_node_create(pdev->id); - if (IS_ERR(icc_node)) { - ret = PTR_ERR(icc_node); - goto err_prov_del; - } + if (IS_ERR(icc_node)) + return PTR_ERR(icc_node); priv->node = icc_node; icc_node->name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%pOFn", @@ -171,14 +168,17 @@ static int exynos_generic_icc_probe(struct platform_device *pdev) goto err_pmqos_del; } + ret = icc_provider_register(provider); + if (ret < 0) + goto err_pmqos_del; + return 0; err_pmqos_del: dev_pm_qos_remove_request(&priv->qos_req); err_node_del: icc_nodes_remove(provider); -err_prov_del: - icc_provider_del(provider); + return ret; } From patchwork Wed Feb 1 10:15:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51269 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp191714wrn; Wed, 1 Feb 2023 02:17:57 -0800 (PST) X-Google-Smtp-Source: AK7set+qARtOcanB/rtvBbdSN83VYUaoNwt6MG7W5oCam137XA6F/QIwcLZKgry8qVN15IUUvbn5 X-Received: by 2002:a05:6402:160a:b0:4a2:28bb:b365 with SMTP id f10-20020a056402160a00b004a228bbb365mr1360857edv.2.1675246677567; Wed, 01 Feb 2023 02:17:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246677; cv=none; d=google.com; s=arc-20160816; b=stmVTXi90psirBXcj7VzI7EoWfLCnHspvr6VRgRXr1uLqqQ/CsLc6gv4dvrdQiw3ue PoQTkfKUGJy7U52OjtrD/IKiYRWeaRtO6D4UIHblvNkdW3tK5oV7RlfyUTjNCFi6plYZ 7+VntpW08vPeWZ4RlI4mwRMon4z20iXtPX/aCuHCvqsFw6be/r2g+TuKA0M7pRXnqFvO T0ZJbu7/nrJBHRmmZlhBWkEZ7HrwFw3dm2e8gOoHruGVy8Y7fwAz3M0rNzanND9kkdsw h1xZQyHynvWEQ7bUdFpba6tT53lomFUpu6vHek7OHyX15pEirguBc8AZxLddYwtCpUw0 Pqkg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=4ZXR8KGNbZmlNMagm4Cc46jwDwO2XKcczceGytAkXjQ=; b=PU3kQJdhA4fdl3HS4hZ89ZXte1mf17pxvprXsC9uKUBWjeTKK2uwnVYoxIq2f/tJo0 TWdMFXvg2pRKGpEMZOALseTN3yF7LV+y2Vpungv3yTafk3tDzg/8P6rhjL37qmE3M4U8 X6MMEkN4n7OgE51g/UPgi6Uy7vH0e8NvIGqrfMR1UD7DUUg/PENYeAkll7TrseeM7t/H H1JpPUnPpTvaZMC5ZYVOosi3ofjQJhxin7afImYbFbKoL1+w9K5+4Uss+rDv/ccvsI8m Zd9x9nL5U3xtajoKrsyM37rY7xspaKqm4+pAzoT+zIUh/nLrOlEIjeU22LujDelp5o4U zyRQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=TkCAzV47; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f9-20020a0564021e8900b004a0baaafbe6si15750576edf.125.2023.02.01.02.17.33; Wed, 01 Feb 2023 02:17:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=TkCAzV47; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232297AbjBAKQx (ORCPT + 99 others); Wed, 1 Feb 2023 05:16:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51982 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231237AbjBAKQg (ORCPT ); Wed, 1 Feb 2023 05:16:36 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1154F3EFD5; Wed, 1 Feb 2023 02:16:35 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 6474261760; Wed, 1 Feb 2023 10:16:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 347EEC43141; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246593; bh=wRymLHXCWqnkYqQGyutZODF79K4cpesmi8Cm/ANh5+g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TkCAzV47/PLKloW530+0THEICphvDfNQEdS+t9TEv3KlDrgGF7yZUb2YKrABsIjX6 FXYcW1joCD8cysr//4Ub5XaSPmTn8gE9dOiq5IWTMJPwJgWEqTfnoaZonrVoNvYQ/V c7uueRVHuwcD3M/AmCO1DrRt6CL3LC6D8/56ytCqT0Pbs1CrqnvYtDtrkOiIXPk9/O qf/OHqlzb2Po8dH910Z2Nd63i5cqBqS1OHmd+7s97GtYT6CZq0MBPV0Ok16ad5la/V oP5BCmUdIKvdprgTtv3PU038A+Lw+N39GzGOVwRK76MqY6ZfstFOt4OUft/2YpFwd7 URPzlAOnE+4Ag== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAg-00044N-Dz; Wed, 01 Feb 2023 11:16:54 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 16/23] interconnect: exynos: drop redundant link destroy Date: Wed, 1 Feb 2023 11:15:52 +0100 Message-Id: <20230201101559.15529-17-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623460441508066?= X-GMAIL-MSGID: =?utf-8?q?1756623460441508066?= There is no longer any need to explicitly destroy node links as this is now done when the node is destroyed as part of icc_nodes_remove(). Signed-off-by: Johan Hovold Reviewed-by: Krzysztof Kozlowski --- drivers/interconnect/samsung/exynos.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/interconnect/samsung/exynos.c b/drivers/interconnect/samsung/exynos.c index 72e42603823b..ebf09bbf725b 100644 --- a/drivers/interconnect/samsung/exynos.c +++ b/drivers/interconnect/samsung/exynos.c @@ -96,14 +96,8 @@ static struct icc_node *exynos_generic_icc_xlate(struct of_phandle_args *spec, static int exynos_generic_icc_remove(struct platform_device *pdev) { struct exynos_icc_priv *priv = platform_get_drvdata(pdev); - struct icc_node *parent_node, *node = priv->node; icc_provider_deregister(&priv->provider); - - parent_node = exynos_icc_get_parent(priv->dev->parent->of_node); - if (parent_node && !IS_ERR(parent_node)) - icc_link_destroy(node, parent_node); - icc_nodes_remove(&priv->provider); return 0; From patchwork Wed Feb 1 10:15:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51275 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192175wrn; Wed, 1 Feb 2023 02:19:04 -0800 (PST) X-Google-Smtp-Source: AK7set/UAXF6jHU2JJU09gktd2Tpep9ZqDC/oSg2Ij1L+jdWLRJX0awpVOWxWRcge6CP4DYcwe5R X-Received: by 2002:a17:907:2bc2:b0:878:5d77:b4eb with SMTP id gv2-20020a1709072bc200b008785d77b4ebmr1771609ejc.42.1675246743981; Wed, 01 Feb 2023 02:19:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246743; cv=none; d=google.com; s=arc-20160816; b=wUgxb6EuPq/VqiVmLQnWdC4v2SUmUKmJD3eatnZ4BmIQF1u4DeC5gTzwZlXtE0fDvs SmSihPUSVcrw7MdBpq07rvNUjn5bVXcxKNl+RJ4VEqNWG/7sCxzI8URuJ1Z/uAKXMIvx s3lqJ08zvBWMS8TMO+DTd1wRj8TkRy22TXY7xuq2Ss4BNrb/w9/Q4v0It++FbQDbYS+W RSt+g5ON4D1o8931gbddH6YAxEpJIELojawjRiJzkU1igaN+Veq54WdZRiPhOS7pppeW uniCDvt8qRgNVC3nIohKZUJGzfCsmKxESH6CXLn6gi7ISWHD372SI27aKXSIPBCEmqKB /4ng== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=BRLO90R4y8/BX4eP2BbZzL6BtQMh8lnnjpDk5f2DdO0=; b=G5Tt6hTIjcj4OCpToagK5SMm1UraCoJVHpjI2atl8J8eGhS0XfISarGZvLLwNeF7+6 9+wR2wK5Ibq+MRejE/GGbYQkDS8K9eW1L452vL36kmSUlAszV4wVom+LCREgUY0FmFlU iawiSt0vq3ifwhjgToguaze0ZU1krutuPZZILCh143I3446KGxkMvQkHCYLRlRBwDXiQ yR/k/29w1Uwih+/A5mEsPDrwobSy/COiPBra/y9BAKi1GPjsHXiIoMCv0xmhKdgP3U7R 5mx5jLaG7NF60ydWEgFj/hpg+5bg+pro3SNQQ4nAKCgmfeI3KTIXTn3xLX+R+WOjHh/g CAoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Yh1VqGfh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id gc9-20020a1709072b0900b00888dc444e9fsi8255297ejc.865.2023.02.01.02.18.37; Wed, 01 Feb 2023 02:19:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Yh1VqGfh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231719AbjBAKRH (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51950 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232071AbjBAKQg (ORCPT ); Wed, 1 Feb 2023 05:16:36 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 117814863F; Wed, 1 Feb 2023 02:16:35 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 7972B61758; Wed, 1 Feb 2023 10:16:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 51440C4316D; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246593; bh=ecq8av5Pb8JelEVqGfZy5bLE+Em3A6G3St6QA6WUfoI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Yh1VqGfhsppi4uc1mukAw4C2U8Xhsm5RDxoeQQyzflZTrQytWNUYlB10yOBaK1uzS LkGnZJ++1qG9vlgHMYiPTwpG0ia5Sq3I18e/ba9c4mTwcFgVK5DFqyhSpqBq5WGchK hvOKYS7jUdC8fdh/E+vaWIJUur//x1BqaYtSbE8QClsjlDJyXb1nZxZIiXGHIuDJAL HeHCXKGn65BXFB9I9ZuHwBg2XVrja4kt43QuPhVaUwHe8zw5AE38oznJ69o9CgDNe/ DUnleNtiAk399ZFgU/g+lWARcYM5IPQSqTDpJ9wErsX7svMOczHiVMvN6bfBKwEppR lW6/goDHO/VnQ== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAg-00044Q-GW; Wed, 01 Feb 2023 11:16:54 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Dmitry Osipenko Subject: [PATCH 17/23] memory: tegra: fix interconnect registration race Date: Wed, 1 Feb 2023 11:15:53 +0100 Message-Id: <20230201101559.15529-18-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623529420062536?= X-GMAIL-MSGID: =?utf-8?q?1756623529420062536?= The current interconnect provider registration interface is inherently racy as nodes are not added until the after adding the provider. This can specifically cause racing DT lookups to fail. Switch to using the new API where the provider is not registered until after it has been fully initialised. Fixes: 06f079816d4c ("memory: tegra-mc: Add interconnect framework") Cc: stable@vger.kernel.org # 5.11 Cc: Dmitry Osipenko Signed-off-by: Johan Hovold Acked-by: Krzysztof Kozlowski --- drivers/memory/tegra/mc.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/memory/tegra/mc.c b/drivers/memory/tegra/mc.c index 592907546ee6..5cd28619ea9f 100644 --- a/drivers/memory/tegra/mc.c +++ b/drivers/memory/tegra/mc.c @@ -794,16 +794,12 @@ static int tegra_mc_interconnect_setup(struct tegra_mc *mc) mc->provider.aggregate = mc->soc->icc_ops->aggregate; mc->provider.xlate_extended = mc->soc->icc_ops->xlate_extended; - err = icc_provider_add(&mc->provider); - if (err) - return err; + icc_provider_init(&mc->provider); /* create Memory Controller node */ node = icc_node_create(TEGRA_ICC_MC); - if (IS_ERR(node)) { - err = PTR_ERR(node); - goto del_provider; - } + if (IS_ERR(node)) + return PTR_ERR(node); node->name = "Memory Controller"; icc_node_add(node, &mc->provider); @@ -830,12 +826,14 @@ static int tegra_mc_interconnect_setup(struct tegra_mc *mc) goto remove_nodes; } + err = icc_provider_register(&mc->provider); + if (err) + goto remove_nodes; + return 0; remove_nodes: icc_nodes_remove(&mc->provider); -del_provider: - icc_provider_del(&mc->provider); return err; } From patchwork Wed Feb 1 10:15:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51270 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp191769wrn; Wed, 1 Feb 2023 02:18:03 -0800 (PST) X-Google-Smtp-Source: AK7set+8empTG/fcgKSqoK2oJVXZq57zczdMvmuHlSwDhNLGXjEG4hwCOhCUxGlQHTKEyrIetelN X-Received: by 2002:a17:906:e293:b0:888:a32d:b50 with SMTP id gg19-20020a170906e29300b00888a32d0b50mr1636269ejb.40.1675246683571; Wed, 01 Feb 2023 02:18:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246683; cv=none; d=google.com; s=arc-20160816; b=X5EQcB08mS/3NI5NhWP4Ukp7ocAKkZUN4jpXokmxsxuNq86fbNM8xSrLZYZHpZFqX5 wZPxtK/c9X903BhPRDKG6t9C2HsGvY9ExeWsN1xktam80E8Vu6skqSQHpUDb+Qfz02B6 EXhzeM5af9eDsBhx/tEUwOP/ojy7lZasrvwBpSR20xXvUq9AsBWX2mQTOCb6EbX41vqz jlEbJF6S6imsi+zhmfxsYQOhRWBmC0O3EYpH8UGV1OXLbv+HeyXjt9FSGLb2Noj4w22A Me3aC+EZyJKU5Kmo6PNyV2He3BmhuCtpOJZAhuzQwgrFP1R2uJFCTlRRaHEgvTMyHRDC yIqw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ehbJaTLVP2OnTvXPS0O5QZyzJ11CeBYoO0TYv85Jnw4=; b=h7g3z1kSYFCAFCZ3cJ1cE/py0H9cs7gBSaOhmLs+WARauG1fxwSPgN2bPOmXNTkgYX /yy4dkgscNo7zB0Yv5A69WfUc9FCmfidrZI/kO/pOi4dfiqkMV5xBUFishX3RHXH9ppK dlPNnf9AWgtD/nqZzbwBdpUdSfHl74sdm674UPfFoah/n5rgr6Y2AineQtRtzphAU6Qb ScsqFhqB3c+IiaOIbKbA8qSsoXuEPKwsgX1R59ySS/CaNRTuv73XAJ+kr0UuwtDAgnek HNaVET9xxTzwwmhf0uvEKsKHKPuJ1dbNhfgW6vmZ2PsYsm+erf9qpH5N07qs8EqE44R+ BpcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=MNlSai5d; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id up37-20020a170907cca500b00887c6380c9dsi9585351ejc.40.2023.02.01.02.17.39; Wed, 01 Feb 2023 02:18:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=MNlSai5d; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231252AbjBAKQ5 (ORCPT + 99 others); Wed, 1 Feb 2023 05:16:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51994 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232081AbjBAKQg (ORCPT ); Wed, 1 Feb 2023 05:16:36 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1593A4FADA; Wed, 1 Feb 2023 02:16:35 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 7D1DE61762; Wed, 1 Feb 2023 10:16:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 67496C43172; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246593; bh=+fgTystr/1l8K9USBL4FI5JoE6y0/BWQM1jZupEsZnY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MNlSai5dz7svAwRgqsQF3kqN7Q8uKDmsgjsimiHlzrLNtHyki5OQezR3pWsbFffeF IoqQAHUEGQHSAaylDp6npA0DFxwTXmEiAvytzzqF566qGo0smyYbFhdLlDzd6qsPS+ BPr5IrHeaSBNdDx8x1Rkr363e6o03e0brtoLdJB442ay+AKhefp+6t60VhAIpWEVzs gwZbNMyzyFi1GXWYn1rlOTiKlp7JVmlaKIPKGOhvo1iR/aFika5Sov61KDmD+OCWFn F/9V+zPRWCzwkS+ItjhuX4Cw03sQyStALhq8MDxBjo2gaBvWwXJFSwJwDdcPy/9Wvd pmkJTPje9FIOw== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAg-00044T-J1; Wed, 01 Feb 2023 11:16:54 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Dmitry Osipenko Subject: [PATCH 18/23] memory: tegra124-emc: fix interconnect registration race Date: Wed, 1 Feb 2023 11:15:54 +0100 Message-Id: <20230201101559.15529-19-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623466441637553?= X-GMAIL-MSGID: =?utf-8?q?1756623466441637553?= The current interconnect provider registration interface is inherently racy as nodes are not added until the after adding the provider. This can specifically cause racing DT lookups to fail. Switch to using the new API where the provider is not registered until after it has been fully initialised. Fixes: 380def2d4cf2 ("memory: tegra124: Support interconnect framework") Cc: stable@vger.kernel.org # 5.12 Cc: Dmitry Osipenko Signed-off-by: Johan Hovold Acked-by: Krzysztof Kozlowski --- drivers/memory/tegra/tegra124-emc.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/memory/tegra/tegra124-emc.c b/drivers/memory/tegra/tegra124-emc.c index 85bc936c02f9..00ed2b6a0d1b 100644 --- a/drivers/memory/tegra/tegra124-emc.c +++ b/drivers/memory/tegra/tegra124-emc.c @@ -1351,15 +1351,13 @@ static int tegra_emc_interconnect_init(struct tegra_emc *emc) emc->provider.aggregate = soc->icc_ops->aggregate; emc->provider.xlate_extended = emc_of_icc_xlate_extended; - err = icc_provider_add(&emc->provider); - if (err) - goto err_msg; + icc_provider_init(&emc->provider); /* create External Memory Controller node */ node = icc_node_create(TEGRA_ICC_EMC); if (IS_ERR(node)) { err = PTR_ERR(node); - goto del_provider; + goto err_msg; } node->name = "External Memory Controller"; @@ -1380,12 +1378,14 @@ static int tegra_emc_interconnect_init(struct tegra_emc *emc) node->name = "External Memory (DRAM)"; icc_node_add(node, &emc->provider); + err = icc_provider_register(&emc->provider); + if (err) + goto remove_nodes; + return 0; remove_nodes: icc_nodes_remove(&emc->provider); -del_provider: - icc_provider_del(&emc->provider); err_msg: dev_err(emc->dev, "failed to initialize ICC: %d\n", err); From patchwork Wed Feb 1 10:15:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51280 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192621wrn; Wed, 1 Feb 2023 02:20:14 -0800 (PST) X-Google-Smtp-Source: AK7set/++IwN3y9i344/c8oaSDNqKzvzVe+sCGIcvQT6Twas1TtKsGjr2bUz+IS6ifxQXKLrIQet X-Received: by 2002:a17:906:16c2:b0:888:33a:e359 with SMTP id t2-20020a17090616c200b00888033ae359mr1506889ejd.38.1675246814096; Wed, 01 Feb 2023 02:20:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246814; cv=none; d=google.com; s=arc-20160816; b=e8N9YF3GifAPmyqDb+H2kxhdjk4LavlJI1ZXIU/U+Vt9AnlE5l+QO/sXaBJH0RXoL4 fnhvFOy0Q0erCE1ZgUwop7zi90YyJgyjb2fXhWdXaGwzWb5SjYrB/T3iB4dmCaPLcztU XGnKRvAvyBp6VAzQcXfWrUcIjNknJqkCheXAHuqShQiJLZqNK1m1RHyAQhGSZbvFOGi7 CoA795Eb2AT6IwSQE/YVRoWPw/4nMjN/HaYciin/izQ/GvQGV/yOXTMjL/jv1Mr5wuuy dyZhuyU3vxNyEyAJhm4IIJXlg6Qo+3Ld62+ZQSnDqO852imd3YSoxGhulkkyaSkeyT2d TEtg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=PJaQkHR1/pQ5Shw365W9rwfRsVXgXHUvK/uyk39GV64=; b=cHkBrXfisfSppUCRmsPs6BRMXODzPXzuS4ghxIiWIY74nkBzI4WBSAaU+vIZVzwY2S Qo5YPSX6IITFRoXRIZG+0OXSk+m6nfdxQlsZOeS5U0Q8vZcL3OIZ0gV5OhI/7cxmMIJF TFiHplzKd5e6DHQ7AssjiAHni/hWbydzqAd084VnjAco4Dq3RDMQLcUkFSq5r3n1kFbW WNV5p9kgTcCSbvhwIdQaTmWlTNjYY/q+PX49e8MGWmX2bBC8ER4eHy3Mx93ieRvoYmVJ F041DAzR/fC6Wuctol2C68QaYmhVwKoflAIV5b/UkB3vFWowsKmTKqhguRGKbkLp2boM kmMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=HbhC0t32; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l20-20020aa7c314000000b004a224ac9efbsi14391945edq.397.2023.02.01.02.19.50; Wed, 01 Feb 2023 02:20:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=HbhC0t32; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232418AbjBAKRb (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52086 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230294AbjBAKQj (ORCPT ); Wed, 1 Feb 2023 05:16:39 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1E901521D9; Wed, 1 Feb 2023 02:16:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 3EF7DB8215F; Wed, 1 Feb 2023 10:16:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 78D66C43178; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246593; bh=/IShi5hUhU0AZjNAGVVo4Am8FiGtjGGx4tIm3pmMj/8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HbhC0t32wJQOguBC5M6Bkmb8iS1AX/QNr2cdxYUVhuHpgPtnxYMFLyyX6CKCpJ10c IReLoM/GmLUTIUpt3PIO+B3Ui6iBFFzqgG9K717PLiOtmjWka8k0jZFOOL+iVTrGcv Y0gP6bNUx+vg/wmlS0taTc9YbdMY0ShFQ0cn8Pluf/yzGC6uTO+dsiFNQdUBLa9OSn ubdB33SvaTLCSN2c+63rB6ExGj5rJqNOo9iPnWtDNQy/SUIeh/QDQ1OqGjSQrZjveU dtlIa6MEJagsuQu6n9oLL9ltjMteNhUclRrRVF+ucuq9f+/yeXbjOCZWCwwsM40pEb lMOqC2dk09T0g== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAg-00044W-LZ; Wed, 01 Feb 2023 11:16:54 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Dmitry Osipenko Subject: [PATCH 19/23] memory: tegra20-emc: fix interconnect registration race Date: Wed, 1 Feb 2023 11:15:55 +0100 Message-Id: <20230201101559.15529-20-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623603370162780?= X-GMAIL-MSGID: =?utf-8?q?1756623603370162780?= The current interconnect provider registration interface is inherently racy as nodes are not added until the after adding the provider. This can specifically cause racing DT lookups to fail. Switch to using the new API where the provider is not registered until after it has been fully initialised. Fixes: d5ef16ba5fbe ("memory: tegra20: Support interconnect framework") Cc: stable@vger.kernel.org # 5.11 Cc: Dmitry Osipenko Signed-off-by: Johan Hovold Acked-by: Krzysztof Kozlowski --- drivers/memory/tegra/tegra20-emc.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/memory/tegra/tegra20-emc.c b/drivers/memory/tegra/tegra20-emc.c index bd4e37b6552d..fd595c851a27 100644 --- a/drivers/memory/tegra/tegra20-emc.c +++ b/drivers/memory/tegra/tegra20-emc.c @@ -1021,15 +1021,13 @@ static int tegra_emc_interconnect_init(struct tegra_emc *emc) emc->provider.aggregate = soc->icc_ops->aggregate; emc->provider.xlate_extended = emc_of_icc_xlate_extended; - err = icc_provider_add(&emc->provider); - if (err) - goto err_msg; + icc_provider_init(&emc->provider); /* create External Memory Controller node */ node = icc_node_create(TEGRA_ICC_EMC); if (IS_ERR(node)) { err = PTR_ERR(node); - goto del_provider; + goto err_msg; } node->name = "External Memory Controller"; @@ -1050,12 +1048,14 @@ static int tegra_emc_interconnect_init(struct tegra_emc *emc) node->name = "External Memory (DRAM)"; icc_node_add(node, &emc->provider); + err = icc_provider_register(&emc->provider); + if (err) + goto remove_nodes; + return 0; remove_nodes: icc_nodes_remove(&emc->provider); -del_provider: - icc_provider_del(&emc->provider); err_msg: dev_err(emc->dev, "failed to initialize ICC: %d\n", err); From patchwork Wed Feb 1 10:15:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51283 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192643wrn; Wed, 1 Feb 2023 02:20:17 -0800 (PST) X-Google-Smtp-Source: AK7set9fkGgpT5M52TN7bajxp/Ld6SuUnHb1JdK/t8oXlocDlxnp6AMUoJ+yDFJ75sEeUmOrHvL7 X-Received: by 2002:a50:d753:0:b0:49c:288f:fdca with SMTP id i19-20020a50d753000000b0049c288ffdcamr1312517edj.36.1675246816872; Wed, 01 Feb 2023 02:20:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246816; cv=none; d=google.com; s=arc-20160816; b=wmUGX7jVQxbfYrSm7yPu1B5gUha3Q8shzpG6KMpBILh/JIXicaMYgnTXI69LR0Qv92 FRQK7oeH2+IbXyDYpEJEGRisBdSOjfD0+xhUCyrHSxlr31K7vs0wIXpaA0Wlf/5cpScf MSjWWmtS+22vnA+5N84w/AbotJc5jLC5MnxBmg4G92hvPaOly4Xx1mAZD+uIFrRfpaKw UpxwmNTkMqIYMU8Sezu2OeAjF7w6oyDizM9k+tDth/fLcSgAZmyBi3T76UP09pM5xmAF fXmuJ/c8B9ziZ4xgU5IuGSRtvG0cTixr7A5s5opTz7y2gYjWCRCsMUk+NZvMQoHTdO8d qa2A== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=1/UpUgtDdVD/gAbpfngbAUwFIcRx2jKLHdYocarlNwo=; b=0olqJ3NrpalgrutGykoON7X5DQvGUeZf+/lYds7CI2rbF2a/XmKAwoWBodHQxaYVoc kiyfUIVHn/om/UaZU2VyNPtKllCbDK5f39/ETKfe0tXq9nmWX3AO9OwICSH7BsfTTdsI m22arhPPQekMSp1QJCcjsH4TCe7GIZJ0Yy4fEv4eViQFY7jM5mak2FbRPCVeQ9MSIAfo oa5Snkrw2wNQcDzpY3oMDr1oXvfUxJHtqh2tZjD/5hb5c8WMbOm+mU4kmndX4XWImMXH HAxFSefHTNdCQeb2emHFcnsUi5NM9DBDj/C6wTzQGXM1Gxoz7JhKeiAQ/Sqga0MxHbuG LS0w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=lXicU4UL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n11-20020aa7db4b000000b0046e635ee69esi3030534edt.210.2023.02.01.02.19.53; Wed, 01 Feb 2023 02:20:16 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=lXicU4UL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231611AbjBAKRe (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52094 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232207AbjBAKQk (ORCPT ); Wed, 1 Feb 2023 05:16:40 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2C18B58295; Wed, 1 Feb 2023 02:16:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 40B72B82166; Wed, 1 Feb 2023 10:16:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7ED75C43179; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246593; bh=CAmkaGLoDox81dvLZbm9L9PKvEdTSmxQ1M1A4V7S128=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lXicU4ULDiKBdYLaI6OJLURZuf4h4Sone8mHpQvDusQheD9XUR5aRV5T8Hzl1lgHy x2S0uJ9qNzKpZivI945NV/5sfhlOc3ig6aOxo9ICkUBL/JaOrpbWSqzdzawAnAqcCS PWkdz5ikuRHr62U1fIbjZdeXnsRlNJr4wkf1DtCf3CW3rQvrc1UfxePjiiE1OMdD09 nIiNqFbgZ2rsLe/R0IGJ3t/E/cAzT3tj3sYsMMqkuIkAmdkqPjylJCRS8lgOBhhUfe Hpl+Stp1qRTh3ct/Rs+dOFwDftgTQKgfeYbD4MbTCVGEVQpRIV+IdkdnRGcBfOsAb8 4rLvopnrLdLuA== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAg-00044Z-OS; Wed, 01 Feb 2023 11:16:54 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Dmitry Osipenko Subject: [PATCH 20/23] memory: tegra30-emc: fix interconnect registration race Date: Wed, 1 Feb 2023 11:15:56 +0100 Message-Id: <20230201101559.15529-21-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623606589278481?= X-GMAIL-MSGID: =?utf-8?q?1756623606589278481?= The current interconnect provider registration interface is inherently racy as nodes are not added until the after adding the provider. This can specifically cause racing DT lookups to fail. Switch to using the new API where the provider is not registered until after it has been fully initialised. Fixes: d5ef16ba5fbe ("memory: tegra20: Support interconnect framework") Cc: stable@vger.kernel.org # 5.11 Cc: Dmitry Osipenko Signed-off-by: Johan Hovold Acked-by: Krzysztof Kozlowski --- drivers/memory/tegra/tegra30-emc.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/memory/tegra/tegra30-emc.c b/drivers/memory/tegra/tegra30-emc.c index 77706e9bc543..c91e9b7e2e01 100644 --- a/drivers/memory/tegra/tegra30-emc.c +++ b/drivers/memory/tegra/tegra30-emc.c @@ -1533,15 +1533,13 @@ static int tegra_emc_interconnect_init(struct tegra_emc *emc) emc->provider.aggregate = soc->icc_ops->aggregate; emc->provider.xlate_extended = emc_of_icc_xlate_extended; - err = icc_provider_add(&emc->provider); - if (err) - goto err_msg; + icc_provider_init(&emc->provider); /* create External Memory Controller node */ node = icc_node_create(TEGRA_ICC_EMC); if (IS_ERR(node)) { err = PTR_ERR(node); - goto del_provider; + goto err_msg; } node->name = "External Memory Controller"; @@ -1562,12 +1560,14 @@ static int tegra_emc_interconnect_init(struct tegra_emc *emc) node->name = "External Memory (DRAM)"; icc_node_add(node, &emc->provider); + err = icc_provider_register(&emc->provider); + if (err) + goto remove_nodes; + return 0; remove_nodes: icc_nodes_remove(&emc->provider); -del_provider: - icc_provider_del(&emc->provider); err_msg: dev_err(emc->dev, "failed to initialize ICC: %d\n", err); From patchwork Wed Feb 1 10:15:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51286 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192684wrn; Wed, 1 Feb 2023 02:20:23 -0800 (PST) X-Google-Smtp-Source: AK7set+StPJdZIuxrpgWdqdvv2iGO2R+woBLOInqXVZNHEQpZH8UiU5PHzXqVbkYXqtO+aPajpqV X-Received: by 2002:a05:6402:4446:b0:49d:fff2:d4b9 with SMTP id o6-20020a056402444600b0049dfff2d4b9mr1356169edb.23.1675246823454; Wed, 01 Feb 2023 02:20:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246823; cv=none; d=google.com; s=arc-20160816; b=OyWdVFxNgWfR4XDNaO9MdE01uvwoKv58za2Q2MvnzouRJwqwAAI0jWs3AXPGRXVTPG Rxtc1+Apk3w8V0kTAXWH7D9Hm5lR3LlIfDDYZ1cBDZPBkVR4RIUFssyg3HUZPgqQOSZE B4Lbs9u3BKxMrSBwQ278NBls8SI3TBJiNNaUfqF/Iq8v7pO3mI/kb5QpKH7r8UVLdZu6 CrndGcKIs3HYi2XJ8JiRLIC8MT7PUkrxC61DU3Z+ebLVZ7o3LLuAf54rsrYEHNENen68 TqBnZvva0pQfMCjY2vGquVnIOAvc/KZOEyajKeZgG2j8G3xJwQ3WkiIxfjnRjH0XJoM5 KbUw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ga0sfqiFJHJ8xAckcmnpn7BeHt5iP79Zn49/E5ZzSKs=; b=xRYl8RSWRLoEjeVQGvHyRZc2iXQPDrkUjfBVGLJIKY33HY1fqC+KUixIZ6octQTGwC DnTom0WB3nbeMRP8YmLvi78UpFGf8VPbl13esqctQmUwa3JkH1E67w6FBBBTz6svHmn0 ityRk8UbgZ26YWdxIRwW8HicEWdlYxmsPdjWQvjUdjCTsbLlhArzDHmF+BwyDGztcTDi ht6BEmumAm/GJnmuuqu5/peuNlGgxM0m/ewByVnd9K3kWS3Wc0rgTgxRzDRocQXrD0s+ Kxe/kp50FDjeZwHPvTQ34HCxddPKhZzpSmleIwXCuR4SWxj1/H+S6etVGriTUgl63DaE s+fg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=cgPv53iL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bm14-20020a0564020b0e00b004a216fa2599si5223008edb.385.2023.02.01.02.20.00; Wed, 01 Feb 2023 02:20:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=cgPv53iL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232450AbjBAKRm (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52092 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232209AbjBAKQk (ORCPT ); Wed, 1 Feb 2023 05:16:40 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2C0D153572; Wed, 1 Feb 2023 02:16:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 45DBDB82165; Wed, 1 Feb 2023 10:16:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D4FFC4167D; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246593; bh=KW9r2w3sR70m75wWgICIelAqw9kb2RB4YyHuGvDFwCE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cgPv53iLEN4VAiZA6SdmYXkco5vAXCAZeEtkTKHYDlcei7xDMcrt2LCfxPQ1kHJZ1 gnkVoLVAjSvZJmtwhAFv9FjSlPA2oHzoYHKSW+n38niRDbEQI0/XJ16E9rMXtN6q5p kV4YyeAx2WGz5Z05hWmyWczk/nei8HcMHvdhExSDGVjgez+7dA7uJ6ugqGQeTQNtR0 DHH2kwe8q2waCjB12oPznQJZDPA2Ufg61OYJ22mqx6xl27WokL0wHwWKqLaunJ0RJ2 XCAkfalwNZFAmHODD9v/ZefKm+YljW76KvWOX7puqbN920reKf3Hi2erkxsWe2VpEa P+4EaiA8UlTlg== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAg-00044c-Qx; Wed, 01 Feb 2023 11:16:54 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 21/23] interconnect: drop racy registration API Date: Wed, 1 Feb 2023 11:15:57 +0100 Message-Id: <20230201101559.15529-22-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623613239283379?= X-GMAIL-MSGID: =?utf-8?q?1756623613239283379?= Now that all interconnect drivers have been converted to the new provider registration API, the old racy interface can be removed. Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio --- drivers/interconnect/core.c | 16 ---------------- include/linux/interconnect-provider.h | 11 ----------- 2 files changed, 27 deletions(-) diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c index 93d27ff8eef6..b8917823fd95 100644 --- a/drivers/interconnect/core.c +++ b/drivers/interconnect/core.c @@ -1078,22 +1078,6 @@ void icc_provider_deregister(struct icc_provider *provider) } EXPORT_SYMBOL_GPL(icc_provider_deregister); -int icc_provider_add(struct icc_provider *provider) -{ - icc_provider_init(provider); - - return icc_provider_register(provider); -} -EXPORT_SYMBOL_GPL(icc_provider_add); - -void icc_provider_del(struct icc_provider *provider) -{ - WARN_ON(!list_empty(&provider->nodes)); - - icc_provider_deregister(provider); -} -EXPORT_SYMBOL_GPL(icc_provider_del); - static const struct of_device_id __maybe_unused ignore_list[] = { { .compatible = "qcom,sc7180-ipa-virt" }, { .compatible = "qcom,sc8180x-ipa-virt" }, diff --git a/include/linux/interconnect-provider.h b/include/linux/interconnect-provider.h index d12cd18aab3f..b9af9016a95e 100644 --- a/include/linux/interconnect-provider.h +++ b/include/linux/interconnect-provider.h @@ -125,8 +125,6 @@ int icc_nodes_remove(struct icc_provider *provider); void icc_provider_init(struct icc_provider *provider); int icc_provider_register(struct icc_provider *provider); void icc_provider_deregister(struct icc_provider *provider); -int icc_provider_add(struct icc_provider *provider); -void icc_provider_del(struct icc_provider *provider); struct icc_node_data *of_icc_get_from_provider(struct of_phandle_args *spec); void icc_sync_state(struct device *dev); @@ -179,15 +177,6 @@ static inline int icc_provider_register(struct icc_provider *provider) static inline void icc_provider_deregister(struct icc_provider *provider) { } -static inline int icc_provider_add(struct icc_provider *provider) -{ - return -ENOTSUPP; -} - -static inline void icc_provider_del(struct icc_provider *provider) -{ -} - static inline struct icc_node_data *of_icc_get_from_provider(struct of_phandle_args *spec) { return ERR_PTR(-ENOTSUPP); From patchwork Wed Feb 1 10:15:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51278 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192511wrn; Wed, 1 Feb 2023 02:19:58 -0800 (PST) X-Google-Smtp-Source: AK7set8cr7GJxJykifcHb6WUq5zK+zG2L2y3r7+Pr08M/fnXAgk659ZOhMqz5xbZAPijzANYKzjf X-Received: by 2002:a17:906:dfe1:b0:878:7f6f:b1d with SMTP id lc1-20020a170906dfe100b008787f6f0b1dmr1941518ejc.67.1675246798876; Wed, 01 Feb 2023 02:19:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246798; cv=none; d=google.com; s=arc-20160816; b=sSMLITMnj2MrXm1gse+LXIMrN64UdRFArQkUQrm6PP1/+88Y9AjJQc228I66Jodu51 TofhB02WZYpRdGU4Kx3cnwcj9d0e0H2HB/C3B7p4yAd1HE5SzCgo01CmjzDTkf8X73xg KRi5ZycVucNlG/v8pmh1kZkhGBx2Ht7FX6F3oLjcw2op8gupIPIBdjXfkgzx7f1rIong e37CB2AicUsVEyxNGhy+80y5qbIINdT3IDe/t4nIbRzmSb9124wp0d+USCGbw6GiEGg/ xmhqq2lRekRNFnQvw7gcHo4cfipRtBftrBy+je4LkPZ7SgctGBZUKEZ3bahgBuGjDNSE Op/A== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=QI2Anph32aHm2OfuDsGBBQLG+h3r8HusGJwU5aAqsJQ=; b=LIxAebNZIJd73Jo01106wFSOkH+4g7htY86PFTyr/rXqHUuyPx5VTwNcAPAj466yb2 KicwoCZacqX8CDSVTN4TywRsSumeCfcR8HZjAwIQtCa0wJEK4dUxVj1FZ8AJeFvitv9D WQO204obE2mUzaj8w1Etnd90lOqX4QxYUXL5MzaKW/RFAKx05Y1MXjHyhheoxoiT6m2m qethW/po6FJmq+rxelIoLqONSqKH2QOwSo4DAdRsykQhBXuyUEQ5SmHF+zc5QFJ4WZXO Tt8oRiqrbI88CQ5NqOvtkGuz40PfNyBHPNqCkx6pgXe3xjPbob47jgANwHHBkf7nur2q EbRw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="BVHSaEd/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l2-20020a170907914200b00888c8008f3csi8864427ejs.899.2023.02.01.02.19.35; Wed, 01 Feb 2023 02:19:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="BVHSaEd/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232346AbjBAKRi (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52134 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232216AbjBAKQk (ORCPT ); Wed, 1 Feb 2023 05:16:40 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 434D05975D; Wed, 1 Feb 2023 02:16:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 4F84CB82168; Wed, 1 Feb 2023 10:16:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A2BCEC41621; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246593; bh=xqUo7ZED6s0hld+Eufv3/S46YusTVwGZTw3TXQmwDU0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BVHSaEd/UxXs4KvlEWarLLtspLCIsBTXXu0Lpi++tzqVaYmQpAMwAhXZiHTjuQ+7U fw/jhzG51HAC1Zr9TPDBKkg8ht+UCl7sHiWy7HRkC7UEF8zEJTgiJRV84nq2JWvFFb psHt1LbYV2js8n5glaIBx6oOFbusfy1xyPf3nEd6GLaRMQzU5ipVJBNFkkkRjCbVy1 DcL4Z+Q0ZyojD0eUWpXwPQ+0epn8Urp1qP3hBRisafxyHdRLOZofW8KTEh7tdOhg5b cks8QtHIpIgOktV5rLrFX7PAdkXCCxs1fi0XJXXrdIXloyKnILVdrBGr14FCu7ey9g xfhGSxLi92IJQ== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAg-00044f-UE; Wed, 01 Feb 2023 11:16:54 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 22/23] interconnect: drop unused icc_get() interface Date: Wed, 1 Feb 2023 11:15:58 +0100 Message-Id: <20230201101559.15529-23-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623587448037638?= X-GMAIL-MSGID: =?utf-8?q?1756623587448037638?= The icc_get() interface can be used to lookup an interconnect path based on global node ids. There has never been any users of this interface and all lookups are currently done from the devicetree. Remove the unused icc_get() interface. Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio --- drivers/interconnect/core.c | 52 ++---------------------------------- include/linux/interconnect.h | 8 ------ 2 files changed, 2 insertions(+), 58 deletions(-) diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c index b8917823fd95..8cca5e9a9d5f 100644 --- a/drivers/interconnect/core.c +++ b/drivers/interconnect/core.c @@ -588,7 +588,7 @@ EXPORT_SYMBOL_GPL(icc_set_tag); /** * icc_get_name() - Get name of the icc path - * @path: reference to the path returned by icc_get() + * @path: interconnect path * * This function is used by an interconnect consumer to get the name of the icc * path. @@ -606,7 +606,7 @@ EXPORT_SYMBOL_GPL(icc_get_name); /** * icc_set_bw() - set bandwidth constraints on an interconnect path - * @path: reference to the path returned by icc_get() + * @path: interconnect path * @avg_bw: average bandwidth in kilobytes per second * @peak_bw: peak bandwidth in kilobytes per second * @@ -705,54 +705,6 @@ int icc_disable(struct icc_path *path) } EXPORT_SYMBOL_GPL(icc_disable); -/** - * icc_get() - return a handle for path between two endpoints - * @dev: the device requesting the path - * @src_id: source device port id - * @dst_id: destination device port id - * - * This function will search for a path between two endpoints and return an - * icc_path handle on success. Use icc_put() to release - * constraints when they are not needed anymore. - * If the interconnect API is disabled, NULL is returned and the consumer - * drivers will still build. Drivers are free to handle this specifically, - * but they don't have to. - * - * Return: icc_path pointer on success, ERR_PTR() on error or NULL if the - * interconnect API is disabled. - */ -struct icc_path *icc_get(struct device *dev, const int src_id, const int dst_id) -{ - struct icc_node *src, *dst; - struct icc_path *path = ERR_PTR(-EPROBE_DEFER); - - mutex_lock(&icc_lock); - - src = node_find(src_id); - if (!src) - goto out; - - dst = node_find(dst_id); - if (!dst) - goto out; - - path = path_find(dev, src, dst); - if (IS_ERR(path)) { - dev_err(dev, "%s: invalid path=%ld\n", __func__, PTR_ERR(path)); - goto out; - } - - path->name = kasprintf(GFP_KERNEL, "%s-%s", src->name, dst->name); - if (!path->name) { - kfree(path); - path = ERR_PTR(-ENOMEM); - } -out: - mutex_unlock(&icc_lock); - return path; -} -EXPORT_SYMBOL_GPL(icc_get); - /** * icc_put() - release the reference to the icc_path * @path: interconnect path diff --git a/include/linux/interconnect.h b/include/linux/interconnect.h index 2b0e784ba771..97ac253df62c 100644 --- a/include/linux/interconnect.h +++ b/include/linux/interconnect.h @@ -40,8 +40,6 @@ struct icc_bulk_data { #if IS_ENABLED(CONFIG_INTERCONNECT) -struct icc_path *icc_get(struct device *dev, const int src_id, - const int dst_id); struct icc_path *of_icc_get(struct device *dev, const char *name); struct icc_path *devm_of_icc_get(struct device *dev, const char *name); int devm_of_icc_bulk_get(struct device *dev, int num_paths, struct icc_bulk_data *paths); @@ -61,12 +59,6 @@ void icc_bulk_disable(int num_paths, const struct icc_bulk_data *paths); #else -static inline struct icc_path *icc_get(struct device *dev, const int src_id, - const int dst_id) -{ - return NULL; -} - static inline struct icc_path *of_icc_get(struct device *dev, const char *name) { From patchwork Wed Feb 1 10:15:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 51288 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp192716wrn; Wed, 1 Feb 2023 02:20:28 -0800 (PST) X-Google-Smtp-Source: AK7set+IWyUtdGKX4RIi6dbZVkIHTPLrJZH48633uc50hSRo17VGUALtrd+lroOW5brIXgJNwfkA X-Received: by 2002:a50:d7d7:0:b0:4a0:c3f7:69c3 with SMTP id m23-20020a50d7d7000000b004a0c3f769c3mr1424585edj.29.1675246827954; Wed, 01 Feb 2023 02:20:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675246827; cv=none; d=google.com; s=arc-20160816; b=oGfgRMcLSJdDAl7HexGdxJhHphYpK6qs0nX1y1TxaLCuC3oMGjVaBp+JEfHCKjACCH Y9iE3vBfZpQnCyLbvDP07cnyLVFM5a6fxLlt7+MAvjpJA+LHVcKb3fidx2ZkHDFLr+xX 4kmN0M/2JwrPuAzmJQ60mVo2yBJfVOeK/dtBPgVGoE2Ug24R/Oe11khcGAWXEd3a7fZO DGpdxsHviD74TaHwXCz+Fa/uGzU0UckHam+FHPwmRlHDVQBZo8YcDxOiVlkcbbSSFmOo LqXoQYR6zbANOTsV9hceoZ9MQlNmAZ7QTsp/C3j8m/Gwc5rarxHrrkjQ7h8pCdsmb0Wq yT1w== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=rcX6ym2h5AdCbvkvFqNK5Kati+L8KVZ4F+gYDP/SDZo=; b=X3ZxiTboAC+gjNMkyfK7o5dYQkcIXOF6oPh26tmZw0H7+NKXTqmN2s2CKE2MpDQFwy SY0CHK2AT5QuecyBAdvZZgqyTGBNKQ4EAzo5+AN9PgX6bRfXSjrvFqR8A7pBaXxW4tUG G3BwlkNTJJO9WOYYJfOOme2xH4N+pOvieI3Q8UW8SX6SnNOBBaQXDTlN83qq+PEQuxcc DbH6vSvdyRGG+3wl2fLFunuzo0Brin4Y3zqaQJ4oZ4slLucAGeuO7Lxb27xOzHfTB3kl QGb1oCozire1798uwRzxxMw/2lTMAD2WVD6dGs1pHNl6enSlLtQisdvmBkLloZo+DyuK qPnQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=eCMI8uXF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x16-20020a05640226d000b00482457d1e83si14243522edd.589.2023.02.01.02.20.04; Wed, 01 Feb 2023 02:20:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=eCMI8uXF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232471AbjBAKRv (ORCPT + 99 others); Wed, 1 Feb 2023 05:17:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230430AbjBAKQg (ORCPT ); Wed, 1 Feb 2023 05:16:36 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 93C284F36F; Wed, 1 Feb 2023 02:16:34 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2ABE061753; Wed, 1 Feb 2023 10:16:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6F27C4FE03; Wed, 1 Feb 2023 10:16:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675246593; bh=0m8gstcsjAXKkZ3q2p9aNR2mJM0JHgPPjx74c1l8cI4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eCMI8uXF/3vctbgf7q2GxhrLQtBbH/VJSdgU6kRcOZYJk6w1zND0LltlmGXMpu5r2 GVjX2U9TEyhcbCTGv68EyJBQZLoJR45HCd00Xx2/Rreo9DP3652aLKLEAJZTa5P1ZR PoqUB4+BvpCTM4je2Wbfzs2YWRPZ0CTOFbY3JYn9GqaasgZapVhY4GjzfQbPYB+pnw YcA1Rjr5+JXstyjwU6E09Wkb0GBmD0CKPQ1ulM/5kYTqt3imJh5qIGjEpdAOVpexP7 j5m7NZn0teGWSBDX0agvbbR0Jh2HgCqEreB7PMeUYuro7SIGrR2Dxf9oj9SOSGZQPS 5dHo+4LzWQpMw== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pNAAh-00044i-1D; Wed, 01 Feb 2023 11:16:55 +0100 From: Johan Hovold To: Georgi Djakov Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andy Gross , Bjorn Andersson , Konrad Dybcio , Sylwester Nawrocki , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Krzysztof Kozlowski , Alim Akhtar , Thierry Reding , Jonathan Hunter , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 23/23] interconnect: drop unused icc_link_destroy() interface Date: Wed, 1 Feb 2023 11:15:59 +0100 Message-Id: <20230201101559.15529-24-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230201101559.15529-1-johan+linaro@kernel.org> References: <20230201101559.15529-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756623617735483253?= X-GMAIL-MSGID: =?utf-8?q?1756623617735483253?= Now that the link array is deallocated when destroying nodes and the explicit link removal has been dropped from the exynos driver there are no further users of and no need for the icc_link_destroy() interface. Signed-off-by: Johan Hovold --- drivers/interconnect/core.c | 46 --------------------------- include/linux/interconnect-provider.h | 6 ---- 2 files changed, 52 deletions(-) diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c index 8cca5e9a9d5f..d40b35bdc6ef 100644 --- a/drivers/interconnect/core.c +++ b/drivers/interconnect/core.c @@ -859,52 +859,6 @@ int icc_link_create(struct icc_node *node, const int dst_id) } EXPORT_SYMBOL_GPL(icc_link_create); -/** - * icc_link_destroy() - destroy a link between two nodes - * @src: pointer to source node - * @dst: pointer to destination node - * - * Return: 0 on success, or an error code otherwise - */ -int icc_link_destroy(struct icc_node *src, struct icc_node *dst) -{ - struct icc_node **new; - size_t slot; - int ret = 0; - - if (IS_ERR_OR_NULL(src)) - return -EINVAL; - - if (IS_ERR_OR_NULL(dst)) - return -EINVAL; - - mutex_lock(&icc_lock); - - for (slot = 0; slot < src->num_links; slot++) - if (src->links[slot] == dst) - break; - - if (WARN_ON(slot == src->num_links)) { - ret = -ENXIO; - goto out; - } - - src->links[slot] = src->links[--src->num_links]; - - new = krealloc(src->links, src->num_links * sizeof(*src->links), - GFP_KERNEL); - if (new) - src->links = new; - else - ret = -ENOMEM; - -out: - mutex_unlock(&icc_lock); - - return ret; -} -EXPORT_SYMBOL_GPL(icc_link_destroy); - /** * icc_node_add() - add interconnect node to interconnect provider * @node: pointer to the interconnect node diff --git a/include/linux/interconnect-provider.h b/include/linux/interconnect-provider.h index b9af9016a95e..e6d8aca6886d 100644 --- a/include/linux/interconnect-provider.h +++ b/include/linux/interconnect-provider.h @@ -118,7 +118,6 @@ int icc_std_aggregate(struct icc_node *node, u32 tag, u32 avg_bw, struct icc_node *icc_node_create(int id); void icc_node_destroy(int id); int icc_link_create(struct icc_node *node, const int dst_id); -int icc_link_destroy(struct icc_node *src, struct icc_node *dst); void icc_node_add(struct icc_node *node, struct icc_provider *provider); void icc_node_del(struct icc_node *node); int icc_nodes_remove(struct icc_provider *provider); @@ -150,11 +149,6 @@ static inline int icc_link_create(struct icc_node *node, const int dst_id) return -ENOTSUPP; } -static inline int icc_link_destroy(struct icc_node *src, struct icc_node *dst) -{ - return -ENOTSUPP; -} - static inline void icc_node_add(struct icc_node *node, struct icc_provider *provider) { }