From patchwork Tue Mar 28 16:49:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Shah, Tanmay" X-Patchwork-Id: 13191371 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BE303C6FD18 for ; Tue, 28 Mar 2023 16:50:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230347AbjC1Quc (ORCPT ); Tue, 28 Mar 2023 12:50:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35098 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229491AbjC1Qua (ORCPT ); Tue, 28 Mar 2023 12:50:30 -0400 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2057.outbound.protection.outlook.com [40.107.94.57]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B943D1024D; Tue, 28 Mar 2023 09:49:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N7kdmcgEtKwUHZ3K4U80M5KIGqRmjSCYFZoXRBZFnDuQeLGB1n7pOju+q86VesUdFvukG0Wte+3xs+peguNQ71n7iD0OT9I67JIVyA+8+aJ20XMSvffE+CHjWiyWPCimb56pFZlzDurbcnl/1XKUA9toHy10f6x+9gn4B+pPWrQmknbabUWhS3yz8flGgwQfBUY8w68UaitVgMffa5pdNdXkakmxnuI17M4uARXSHiym5oiyrEjTIAaMm6K43hJlopevFs6+yflnjVnGXT46ZZjRTaguxLTc/AbhVnjHrfDZ8+/olcjWL3NDnYu2c+4e9GHhyDn78AoRi90siYb93w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=waXwmx6v93/a48giSXE8o8Eupo8VCthQfd07N3Sc3bA=; b=WEOQ5Nz4Mwx1FMKBPNjAavHY1xrQgwwsb6IKRUwY39i7UxKTQSi9rVC5W+WuRmvBGjejlN7c79vVhAcqk1kIYk6OdJ9f90913JLZP0sfFqz+XfPgq7TF5TVNKD9xvQjGLW/dlOr4iX6S8RvFo5WE7fNBoba+pUsOSfHqwz4ycZwj16wD5RcvRXnyxcTDlMeEYUOnK0OliArNBE+j7mRk8dspqkjSxjwdBD/389RB9lZOq/2LHEqSZNUUE0NEdT59LMhl4cMwkK47+u6IRIEAdFTGivTq+XCBXmusGzHsGLMn9gtoC2+q2Z4rWTwn9RUpvd+1rYw2gYpiHfAcLgwqwA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=waXwmx6v93/a48giSXE8o8Eupo8VCthQfd07N3Sc3bA=; b=Nspit4K3CsfNLjtancyNi+z2TdXVPBifWY+vr/pMmeiwx2ShxZL4TDYv79nQZ6nnynwydtVPfefV7y1GjuhbuScjxTwXOeXDTilamS18XcdYAPTw6/gqGtQT3xbsUMwoyqXotaOEVurTJlm9fxL55hreYIRghUqc5+iHfP/Xpg4= Received: from CY5PR15CA0160.namprd15.prod.outlook.com (2603:10b6:930:67::28) by SJ0PR12MB5673.namprd12.prod.outlook.com (2603:10b6:a03:42b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.33; Tue, 28 Mar 2023 16:49:52 +0000 Received: from CY4PEPF0000C97D.namprd02.prod.outlook.com (2603:10b6:930:67:cafe::87) by CY5PR15CA0160.outlook.office365.com (2603:10b6:930:67::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.43 via Frontend Transport; Tue, 28 Mar 2023 16:49:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000C97D.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6178.30 via Frontend Transport; Tue, 28 Mar 2023 16:49:51 +0000 Received: from SATLEXMB08.amd.com (10.181.40.132) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 28 Mar 2023 11:49:51 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB08.amd.com (10.181.40.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 28 Mar 2023 09:49:51 -0700 Received: from xsjtanmays50.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2375.34 via Frontend Transport; Tue, 28 Mar 2023 11:49:50 -0500 From: Tanmay Shah To: , CC: , , "Ben Levinsky" , Ben Levinsky Subject: [PATCH v3 1/2] remoteproc: Make rproc_get_by_phandle() work for clusters Date: Tue, 28 Mar 2023 09:49:22 -0700 Message-ID: <20230328164921.1895937-2-tanmay.shah@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230328164921.1895937-1-tanmay.shah@amd.com> References: <20230328164921.1895937-1-tanmay.shah@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000C97D:EE_|SJ0PR12MB5673:EE_ X-MS-Office365-Filtering-Correlation-Id: 6b958f16-41f1-44f2-eebe-08db2fac7360 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZUESMd3hTrgXQPxb61UYTpz4S7SY/mqCGFIdBK91yGKnBieXugQKKnvTnxtB8YLQhwewXBPY/o4R6/MLQaHEwiycFF9UsHAoNDo06vk5bXeJQiSREa47FRzxKfoJoGNI2MC0KthKabug4qmBaneeKvTMxhR/I0zI8LY26khCMkSWPnsad2UKsKPEkrLXPKJXwDnIY0fG5SAqK8Pavk6bi2cQm31zjL5zkeWWVMJzAabh7Pth1Va8UfSGoF1BEYm952/abAuFB6MFSG473x/SE7j7AgLX6MG8PV7U6jH35DRrIoPsLrH7vFNTufiOCvAvxx54U4Va+92SKbly38NPXjqEgoROhOmKrkgRCZW99Cq+ztg+b3Mxq/ftLw0+V4gLXmLy2tKTe59TfDkXu07k1WL5uA0Y6Z/Un16g55i3CHEzAm8PelbCF2pyvKDHUlPUU1x6QAmZMMRF0GBnF204RiRoJ3OYy8Tizu2bxwmetoaKsq0liz4+C2xBvZCttiY01BfjUUULvAVDFlIzK6Z5Ib43gUabaHa9lXOyu75LMSP99NNHyjoRkShpt9eJ2hFq39/7+Wdf59Pk4zCCwYHU7yWjq3/mA16v+sK4/N3vaX1BzlVyBvIkWYA+z6m24oun3WRLTqVA1Wnh86/4QCXQjtoJZFsziVme7P2caGHRf1gDYC46l7/uZGr5QCUotb0dWh2DkWeWRtWg6mdbbnPe9WnahbpQu+3hV37X22B7/Ds= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(4636009)(39860400002)(136003)(396003)(376002)(346002)(451199021)(40470700004)(46966006)(36840700001)(83380400001)(426003)(47076005)(336012)(44832011)(186003)(2906002)(2616005)(26005)(40460700003)(6666004)(356005)(82740400003)(316002)(41300700001)(54906003)(110136005)(86362001)(70586007)(4326008)(8676002)(70206006)(82310400005)(1076003)(40480700001)(36860700001)(36756003)(5660300002)(8936002)(81166007)(478600001)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Mar 2023 16:49:51.8732 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6b958f16-41f1-44f2-eebe-08db2fac7360 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000C97D.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB5673 Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org From: Mathieu Poirier Multi-cluster remoteproc designs typically have the following DT declaration: remoteproc_cluster { compatible = "soc,remoteproc-cluster"; core0: core0 { compatible = "soc,remoteproc-core" memory-region; sram; }; core1: core1 { compatible = "soc,remoteproc-core" memory-region; sram; } }; A driver exists for the cluster rather than the individual cores themselves so that operation mode and HW specific configurations applicable to the cluster can be made. Because the driver exists at the cluster level and not the individual core level, function rproc_get_by_phandle() fails to return the remoteproc associated with the phandled it is called for. This patch enhances rproc_get_by_phandle() by looking for the cluster's driver when the driver for the immediate remoteproc's parent is not found. Reported-by: Ben Levinsky Signed-off-by: Mathieu Poirier Tested-by: Ben Levinsky --- drivers/remoteproc/remoteproc_core.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c index 80072b6b6283..a3e7c8798381 100644 --- a/drivers/remoteproc/remoteproc_core.c +++ b/drivers/remoteproc/remoteproc_core.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -2111,7 +2112,9 @@ EXPORT_SYMBOL(rproc_detach); #ifdef CONFIG_OF struct rproc *rproc_get_by_phandle(phandle phandle) { + struct platform_device *cluster_pdev; struct rproc *rproc = NULL, *r; + struct device_driver *driver; struct device_node *np; np = of_find_node_by_phandle(phandle); @@ -2122,7 +2125,30 @@ struct rproc *rproc_get_by_phandle(phandle phandle) list_for_each_entry_rcu(r, &rproc_list, node) { if (r->dev.parent && device_match_of_node(r->dev.parent, np)) { /* prevent underlying implementation from being removed */ - if (!try_module_get(r->dev.parent->driver->owner)) { + + /* + * If the remoteproc's parent has a driver, the + * remoteproc is not part of a cluster and we can use + * that driver. + */ + driver = r->dev.parent->driver; + + /* + * If the remoteproc's parent does not have a driver, + * look for the driver associated with the cluster. + */ + if (!driver) { + cluster_pdev = of_find_device_by_node(np->parent); + if (!cluster_pdev) { + dev_err(&r->dev, "can't get parent\n"); + break; + } + + driver = cluster_pdev->dev.driver; + put_device(&cluster_pdev->dev); + } + + if (!try_module_get(driver->owner)) { dev_err(&r->dev, "can't get owner\n"); break; } From patchwork Tue Mar 28 16:49:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Shah, Tanmay" X-Patchwork-Id: 13191372 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54842C76196 for ; Tue, 28 Mar 2023 16:50:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231921AbjC1Qus (ORCPT ); Tue, 28 Mar 2023 12:50:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35178 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231631AbjC1Qum (ORCPT ); Tue, 28 Mar 2023 12:50:42 -0400 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2074.outbound.protection.outlook.com [40.107.223.74]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B7A577A81; Tue, 28 Mar 2023 09:50:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BhpG5WCRNy96wWeAW7ZeZLdBaxos09+50nPftrwjiupeu3dJIWjRUeqWGA+WIez2pPA4Ka4DOIEvsKZKUOvYW1Ah/V77/YdLxXbk4QO5J4KDgxT01K9BzxBlH9IAbgEJN4NGmn0+gknrzzeLbOw0bJ+Fyxl6qGuLLF8fNePZ0bwtFroZzwGqciYP/zW1qgBo3pJ4PJR7RJxYL335CDALzcieRqk3XKg7TxHsX++NHUEItNipp4SoY3NIH/5a0GtMwGqeSq8zGXiABizjWsXBUSZLh9KqOtqqSkZEbMh1o4HGhiRvKxjhtYvfrsUTrrJErR1oouMZLa+dOMqFeWSbPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fDwjQDllWH3bXfHz8WaEkcDkzmtqg2nWxKaXoGFDdpE=; b=FgF6DLE2/rDcMFAozEeQeRjcER81+dj0yQ+BxAIcXy5Bki5ULHkkePMX5dzHU6OTkVxjbmrDxhovbPeehwVOzDyxDYMIiUe16r9qbSvrnNyzfXdM93kcXV0krXKIClVsA4gqUfuy0XALvWILW9GvlUe9sP1hEOSbL0X1hWw9KBR7VhEGp+aCv7z20P6woL0u+fyxR8uRYq5QidcyLBaclkiYS8UBF6O5VHr1DpFSTFSuJrfkoWK0CyF97Uj6aGoHr/yY9dNq73m2nfgReC3PVben/CddolgctyCxfOp02indtJSDqmZH1MwyUDYldJBWmXqnrGauZsb5CakYmhNDvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fDwjQDllWH3bXfHz8WaEkcDkzmtqg2nWxKaXoGFDdpE=; b=j6w1V6Ak1PCldoomcbRnhnuvsPe6IL3rKWHfQ+WKqcBEphesZpO8l0MH3ITOT7SY8jVj8jJpo4K06/MZDZpb/SEsxvUxbh5l5/SV3vt4BMa50tJAl7nzSjv0OBw9l+gujh5SOK4KrnZXrjDHjxWDhXxI3uF/0RmvkcFMsoNaI/I= Received: from MW4PR04CA0126.namprd04.prod.outlook.com (2603:10b6:303:84::11) by DM4PR12MB6448.namprd12.prod.outlook.com (2603:10b6:8:8a::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.41; Tue, 28 Mar 2023 16:50:27 +0000 Received: from CO1NAM11FT084.eop-nam11.prod.protection.outlook.com (2603:10b6:303:84:cafe::37) by MW4PR04CA0126.outlook.office365.com (2603:10b6:303:84::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.43 via Frontend Transport; Tue, 28 Mar 2023 16:50:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1NAM11FT084.mail.protection.outlook.com (10.13.174.194) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6222.22 via Frontend Transport; Tue, 28 Mar 2023 16:50:27 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 28 Mar 2023 11:50:15 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 28 Mar 2023 11:50:05 -0500 Received: from xsjtanmays50.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2375.34 via Frontend Transport; Tue, 28 Mar 2023 11:50:04 -0500 From: Tanmay Shah To: , CC: , , Tanmay Shah , kernel test robot , "Tarak Reddy" Subject: [PATCH v3 2/2] remoteproc: enhance rproc_put() for clusters Date: Tue, 28 Mar 2023 09:49:24 -0700 Message-ID: <20230328164921.1895937-3-tanmay.shah@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230328164921.1895937-1-tanmay.shah@amd.com> References: <20230328164921.1895937-1-tanmay.shah@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT084:EE_|DM4PR12MB6448:EE_ X-MS-Office365-Filtering-Correlation-Id: c10aea3b-ff8d-4c3d-088b-08db2fac887d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: b4YvzlyrVz/2pOHBuPuBaV4Vr3XDzwA47NKx5uG6HEL1L3rGLZsVVKdkcwbFSGJxsTBna93l1bEPAXXly6FiAYtvuNcdJT5Y1TLfpSv3MM+qBNEOhnEM188WRJRC5E1WzHAPj1cDK/DEH2B7ikcN3t5o5kzrtd+sSMmNnvDJpfI1XypA0GhdKnl9V5wRXA6pf9TAREDe4ngBt2DXQHO1N03+Ur35RzePN5r8hXbB8j6fKaxBwSBFDu/VEgbcrM/7BLPp1nbsQqWzA1cPoxFI5QWM1vIhLvED3ZrOCWsngVjKz8N9TSGD2IALZZPk+4uL0Q1WdqwM5iOizS8SlEbVR3pgf2jgE/UdR9AnNQD9kuBdHIF9cQoNtR3fwXNUXRc/G+8z5JHlTTOlskWi2XjetJHBl/Fn2YsN/EOrONS9MasAbKwhxf3EJFmT/T/ONFlPIJ631j9IR6RdNHGCbeDBQARd3gk8JM3cu0o7rrB/Dxyjz+PwQLK+Y8I6XE8BA2LYUjDfWxORZNlSpmVqkOypfKlWRPqy4CXb248e0LY/+FVsvxQ57yyH3yGTePwEu4R5obyTZk8nY2oDY66dlLovcCSYup5MI1AV/bzaf7bf6oyl71XLv1m4nE4Dprv4egg0WcKKsCzrMT/9DzBR8FQrj1vLCUyYx6VxUVtsPUjcYKpvTIDLPzqm4916zUfNb+rBwxg3W3q+xiPG3sD44F2DpgGTGt56u39meYrMwMibiYk= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(4636009)(346002)(376002)(39860400002)(136003)(396003)(451199021)(36840700001)(40470700004)(46966006)(110136005)(966005)(478600001)(40480700001)(6666004)(54906003)(26005)(1076003)(316002)(8936002)(8676002)(70206006)(70586007)(40460700003)(41300700001)(81166007)(2616005)(82740400003)(4326008)(336012)(36860700001)(36756003)(186003)(82310400005)(2906002)(83380400001)(5660300002)(426003)(86362001)(47076005)(44832011)(356005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Mar 2023 16:50:27.2426 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c10aea3b-ff8d-4c3d-088b-08db2fac887d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT084.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6448 Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org This patch enhances rproc_put() to support remoteproc clusters with multiple child nodes as in rproc_get_by_phandle(). Reported-by: kernel test robot Link: https://lore.kernel.org/oe-kbuild-all/202303221441.cuBnpvye-lkp@intel.com/ Signed-off-by: Tarak Reddy Signed-off-by: Tanmay Shah --- Changes in v3: - remove module_put call that was introduced in the patch by mistake - remove redundant check in rproc_put - Add inline comments in rproc_put that explains functionality Changes in v2: - Introduce this patch to fix rproc_put as per modified rproc_get_by_phandle drivers/remoteproc/remoteproc_core.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c index a3e7c8798381..d8f28c6fe3a3 100644 --- a/drivers/remoteproc/remoteproc_core.c +++ b/drivers/remoteproc/remoteproc_core.c @@ -2559,7 +2559,22 @@ EXPORT_SYMBOL(rproc_free); */ void rproc_put(struct rproc *rproc) { - module_put(rproc->dev.parent->driver->owner); + struct platform_device *cluster_pdev; + + if (rproc->dev.parent->driver) { + module_put(rproc->dev.parent->driver->owner); + } else { + /* + * If the remoteproc's parent does not have a driver, + * driver is associated with the cluster. + */ + cluster_pdev = of_find_device_by_node(rproc->dev.parent->of_node->parent); + if (cluster_pdev) { + module_put(cluster_pdev->dev.driver->owner); + put_device(&cluster_pdev->dev); + } + } + put_device(&rproc->dev); } EXPORT_SYMBOL(rproc_put);