From patchwork Mon Mar 6 07:56: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: 64503 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1722224wrd; Mon, 6 Mar 2023 00:28:57 -0800 (PST) X-Google-Smtp-Source: AK7set98rXmdOpD+NIbrqrkxS69FKZCCk2yn2Jc/yvUmJuTwF6Hr3qFlsX1nQCuC7yWdEG6dZ5xY X-Received: by 2002:a17:906:304a:b0:8f1:937c:f450 with SMTP id d10-20020a170906304a00b008f1937cf450mr9652334ejd.13.1678091337012; Mon, 06 Mar 2023 00:28:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678091337; cv=none; d=google.com; s=arc-20160816; b=f4ijNIgYHQTjPSzz0prEfQsquojmmgXUyTbV9eqomYuOeqLHdgWBmK2/6ceIYHvlpd Pcia6M0DFGt7iHSl4ANXw85tn+dXnQy7VG4pwIq4aXUN6aFWjgoPOprFEYx37qxzPRPe eX1KlFCDQ5oO9v8J18yY6tWCe3wJ4w25z3elIylagAtYTlpEZgsstCEJhDnmwtHJtQq+ Rr/CY15PbSDAgb8ToVKWz9oMi6AXXu4o+71JIhPIMMwF+t4Lmmo9RQuwgu8FDdTVFCvB iLbHZM6nGLmIA4HOdsJDivaA6GVLVJn6sOPJLQqmlOsRm2jxFoMxnl8m9R52FIjyBvsd WL1g== 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=h9pTHG7PyWzLHQdC4TAOzvhe2vRj4JlUkyUzrDD7Zd4=; b=G0vy2aNLlVa3bhXch0g76eQoXjmND0ydsE2TvBLLYqIAKBLpA5Y6HKg37o55oq35c4 GrBtabJDX3hnXWhouTXjaV+EPOCCLTQr2knwKUt/ZSFVJm/Xl/5rSzUixtqNSoCXs74d 2HaJieNmxnzxDbTGn8BuQCyghRl1bz+g5AZDpHM2uMYLYuqNgmP5KWcErpDvdivVBFz3 VbpgTXofE1g8Ju21GMeeuMY63oYScxiiuxlLF0l4b32XygjBqP1YmG6x9fAgWUfrp/NE vluFcmNBjc8DvhHWY/KAYGvyfzOE+Bdr5m+3SC2YnTZ/pVvGragZGkuyZuUUCapEXVj6 S0WQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=UC2Ilv3w; 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 h12-20020a170906110c00b008cd21ca9c7fsi9249558eja.619.2023.03.06.00.28.33; Mon, 06 Mar 2023 00:28: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=UC2Ilv3w; 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 S229972AbjCFH6E (ORCPT + 99 others); Mon, 6 Mar 2023 02:58:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53350 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229800AbjCFH5l (ORCPT ); Mon, 6 Mar 2023 02:57:41 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7D0901F5F9; Sun, 5 Mar 2023 23:57:39 -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 F2E8D60C4E; Mon, 6 Mar 2023 07:57:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 29FEFC43173; Mon, 6 Mar 2023 07:57:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1678089457; bh=CVoEyJBRdV4svbatNnmkQ+yZecIIYbwCa2L8f0bDWN0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UC2Ilv3wJ9VXCJ+4uAUfkB14olBokK2MPef/XGskKjVmp7/LAnMb3w3gebpJWkTYb WG0NmBrmcWMk10IVAXfWhreZYf2RLFwH3Mz3Q8QeW4xSEmriyDxpn8fb7Np7Pw8DcF HnwilNaLzhhI1cPBuTNknQD4u/mmda9vYlnr4vacHL4AYPMJW/UjnYU9Xji5fytt09 KAjr/WDGotunAWyRY7SfVSwP8bIQhptQscRHZklyTK4HgH1Ddqm6lep7iD3su34hTK 6x0KHwBp4E8LSAgnZB1SY4fOvv6QMHpbuE4o1bAYqxdhS/3KXwN5JS/qESdhXLNUyG KzHTEWf+sgKQQ== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pZ5jd-0000ik-E8; Mon, 06 Mar 2023 08:58:17 +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?QXJ0dXIgxZp3aWdv?= =?utf-8?b?xYQ=?= , "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 v2 19/23] memory: tegra20-emc: fix interconnect registration race Date: Mon, 6 Mar 2023 08:56:47 +0100 Message-Id: <20230306075651.2449-20-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306075651.2449-1-johan+linaro@kernel.org> References: <20230306075651.2449-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?1759606301581491100?= X-GMAIL-MSGID: =?utf-8?q?1759606301581491100?= 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 Acked-by: Krzysztof Kozlowski Signed-off-by: Johan Hovold --- 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);