From nobody Mon Jun 8 09:48:39 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013011.outbound.protection.outlook.com [40.93.196.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5FEB648BD55; Wed, 3 Jun 2026 19:33:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515231; cv=fail; b=U1Bo26rRZ637pIfateP46Rb2fWXQY8QvmGV+3A82O02bvKoNEJ5KxyU3Ic8YNSc/WbHvnVViUG1KU8IXhDxM56aqOatHWp/6feFa0sTQHT/SZ0nZdR0LR/PzHnb5XXV+bBO8iwfM+EHMX7akzFFOfn1IVU9g1FAmKGa7SVzqQao= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515231; c=relaxed/simple; bh=MM1MmyW0dYPnybWKo7radMlVV6O+t6JBI7aY2SuJPjA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Yre2UzDnur04ni0Em5Q+SN230I/mz6G9vJAppNvnP8MuAUyHknuOjZd11B2pgshrv51ZIRTbV3rKDULOUXz3ENcrp95RhyhX+bXZZFX6pPFU/oNx9CYE12T0HP+BdKNi2fk5W7ymhVnFxJEUI+6gUsDdccnSWd3kAILqLzKY6Fg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=KlZiu2vJ; arc=fail smtp.client-ip=40.93.196.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="KlZiu2vJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TbZjrVYQ1dE4bnNpeZvE8ivW9pBgmbmg36t2XALXvXk1PM/aV9J5Jp+TbCdewbGmOepEz9BCSWbDOvg9ZiKyuyHAO9Jk6U7IoBXri/gHPN3npS145ruyxrrvFHsIRLTrdFgwFNyg6hIhdg+S6aTcJp39kjaZKpkhHvXCt+d4wznIx/3gtk+gzLu/DFjGhWefYgoiMvKN1qTMnAHuQTIav716lSBIRVOMPZOuqMptTyqoZEpQFm2j+21b+77ly4/fMBEs0V0O6plMkY+8WieOSd4dkBrSjwx8G9vlLRpa3sPwDVB4undSBlmw+9HRXbRxazA5l38STwAwq38GPtdjig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=yomO51Io6x9hIuebKmWNm/orJxluJvySdJo2MQRa4N0=; b=ViXuKSTlVRBhz38cLQVbBtbZw7MjfWHxVRTQKef0imvRpFTeRf/ZTPsyyN7OA0Vat10Ypz5ZDYzD1iemRc2dS6HTGoRAA5E30PJ/BdiI4QRATVJRLOIkcxd9gNmo0f6jPo0d12wb7NLVVK5xbctyx78kJj13ueZRnJMtM/onbNr4hGwkCwDCxzFkuLFEt8WAu85aJSeuW2oLU0OkioATWZoVJ1yhK7pLgApGwi/KtAiuso29OcOj1Q/DiU5T/u2njEI6ge3LyR92bBVi4LTVpIfKUrGVZhI+JhP7IEkf/JK3jvx1J6qIUH0goRasnF4XvOOPmk/WjczHJLoY4EfUrA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=google.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yomO51Io6x9hIuebKmWNm/orJxluJvySdJo2MQRa4N0=; b=KlZiu2vJW3OCKHlSD6E0H/lHnM32NAKhsbvL0nGlNUAbtyiH83pCn2QnltRASSngHBFB4NLeEb2xoyWNqy7iS48BtOaeGpW9UaLOCYyOUjnXw3KpVTCOWEfhaAoBuSaDCPDAjD/dw6VZUSnzRX0Ex10DgE5xJya98pnNq0pej9ZLnIAXdaCDFJIJW7CCwwG7uU7Rd+aPsU/QI5K0RvxS4WR/ndxq1Rx+hmEmUs8tYrroFxuLYL3hCsQisapQQe5V7rNaaSt+sRKmDlhHrtAeDLLMlLe2WriNb69NE58CPdGQH50DSfScxOr6gzVy8nmxshriZ9LZZUee7JO+owIUOw== Received: from BN9PR03CA0914.namprd03.prod.outlook.com (2603:10b6:408:107::19) by CH3PR12MB8912.namprd12.prod.outlook.com (2603:10b6:610:169::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Wed, 3 Jun 2026 19:33:34 +0000 Received: from BN2PEPF0000449F.namprd02.prod.outlook.com (2603:10b6:408:107:cafe::24) by BN9PR03CA0914.outlook.office365.com (2603:10b6:408:107::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.7 via Frontend Transport; Wed, 3 Jun 2026 19:33:34 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by BN2PEPF0000449F.mail.protection.outlook.com (10.167.243.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Wed, 3 Jun 2026 19:33:34 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:33:20 -0700 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:33:19 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 3 Jun 2026 12:33:10 -0700 From: Mark Bloch To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jonathan Corbet , Shuah Khan , Jiri Pirko , Simon Horman , Sunil Goutham , Linu Cherian , Geetha sowjanya , hariprasad , Subbaraya Sundeep , Bharat Bhushan , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Mark Bloch , "Borislav Petkov (AMD)" , Andrew Morton , Randy Dunlap , "Peter Zijlstra (Intel)" , Thomas Gleixner , Petr Mladek , Tejun Heo , Vlastimil Babka , Feng Tang , Dave Hansen , Christian Brauner , Dapeng Mi , Kees Cook , Marco Elver , Eric Biggers , Li RongQing , "Paul E. McKenney" , "Ethan Nelson-Moore" , , , , Subject: [PATCH net-next V2 1/7] devlink: Skip health recover notifications before register Date: Wed, 3 Jun 2026 22:32:53 +0300 Message-ID: <20260603193259.3412464-2-mbloch@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260603193259.3412464-1-mbloch@nvidia.com> References: <20260603193259.3412464-1-mbloch@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF0000449F:EE_|CH3PR12MB8912:EE_ X-MS-Office365-Filtering-Correlation-Id: bae679e8-c2c3-45a8-c8dc-08dec1a7005f X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700016|1800799024|376014|7416014|6133799003|22082099003|18002099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: ddFwEiVnwTRM5I++4ui5Buaau1e6yDCbSd2wMhaep/3EtFdBvnnA2Bf0uzTabIIfH6n7US0pzhXOt3vkACh8sqrCO7NnJzlauAF94+CHncKuGeFdN9g92AH3mlR0Ocs90lrREl5Ywdiy2d5YaU2XUn9k5y6KFiglnHxAfJj+jz+SderCBh96RUHf5eV4Zx48+VbMwxXmj+xvRMcSSPBfGn8yXzJaCPEk3FeeAmGOTC/Cj8kJ6ypLLuFO/4D5yZUj2auSfmzw2BaJAqwpeSnp867tJevu2deCT1ZvxSz5bDY/P5LzxX4Z0ekbNtgxfMlkvqdZHdxB8YF7ttn33PsK6uqSfmQOTlgDMZer9YePxtxCzNtW0TqhsYuBw8hArp0gTyyzBooxnQByzWVw7X47APMt9ZiVrQsyXRiKH5haZj7iwiNILRCuCv6ld+PxozcYH80j/CDnlhUW5SXCQZ0OSJZf2DuofPwWp4LwaAarmUFJYk8c9p7UgIvKAALYZGPqGIg4+yb4BLnbGEzYQtHsuAHiKMVMshK1TZJBEO4MHlTijPm1wdkL1LfUniWMVgVtN7losFbm0XXakp0oS9FgjOYMm6ooJdLUzCSvzbgOUq3PyzdpeuUUux4D1gf4KRQ1WNLg/JnCEa1ltzyvJYP7yyqo4epKJ0aoY2luxGIrvFvxNG3VXZK6x50xWYEXDqzbczWtLrkIsp/0FHA5jfzNGSwFYzKAAnHvwWG+IYSePto= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(1800799024)(376014)(7416014)(6133799003)(22082099003)(18002099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1k/LWt0AS8exfnB6xXTV+/jV/R7am02j7NS4A5CwYd7GUM6HKeVKe2pBSxoprTXtPjyvXdyyZbrzAPg5eEVADzkBws13EUAzd5lPDtWg6YyIXNo7duIw8Ml2Hd9CFArdC+TFqXIepF9POTHhHt8NTO+GlBBU61YMkzBP9iQERs40IzeqVhcFijgnZTNJWHiVgmL3A0UC6W/y6zVEYzsAydBgj1epZ4BVoFfTRMuUuAn3yt3CAD9jQ84MTs9jiLzK5WvRe9KbVaDVUVHXZq3fmhkbKiUwll5BULjXKvhpZR1DDI0BeznZqTzrJAkR9OU8fpkeRMuXpt2MK8cOWKouLn65hsz6Ou4EZY+vBcNIkafSZXoII6K9fxQ6/SL5MbfMi5hijF/EwAKEim3sADZRQ/76tQfKZ5HJlvJTbNpVuabO2rtOxtD4o91S+6DdDm65 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2026 19:33:34.1650 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bae679e8-c2c3-45a8-c8dc-08dec1a7005f X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF0000449F.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8912 Content-Type: text/plain; charset="utf-8" devlink health reports can be generated before the devlink instance is registered. This can happen during driver initialization when a driver creates health reporters early and its health polling detects an error before devlink_register() is reached. devlink health still records the report state and counters in that case, but userspace cannot observe the devlink instance yet and there is no registered handle to notify through. Skip the netlink notification while the devlink instance is not registered instead of asserting registration. This keeps later userspace queries useful after registration while avoiding a warning from early health reports. Signed-off-by: Mark Bloch --- net/devlink/health.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/net/devlink/health.c b/net/devlink/health.c index ea7a334e939b..376e79497771 100644 --- a/net/devlink/health.c +++ b/net/devlink/health.c @@ -513,9 +513,8 @@ static void devlink_recover_notify(struct devlink_healt= h_reporter *reporter, int err; =20 WARN_ON(cmd !=3D DEVLINK_CMD_HEALTH_REPORTER_RECOVER); - ASSERT_DEVLINK_REGISTERED(devlink); =20 - if (!devlink_nl_notify_need(devlink)) + if (!__devl_is_registered(devlink) || !devlink_nl_notify_need(devlink)) return; =20 msg =3D nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); --=20 2.34.1 From nobody Mon Jun 8 09:48:39 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013040.outbound.protection.outlook.com [40.107.201.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6A95F48C3E7; Wed, 3 Jun 2026 19:34:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515251; cv=fail; b=tZQOpLpxCBTDJEi1CkYkRsEbjCRYWVww6gdw3LEOkuxUhhxdoxkura6+JLWRJ203uqpNowz8nbKhZsDdoLbbZAYavkMkN7xX4aZOZImbS/m6GBVp1QSQcS9ivOhKQ2Da1TNHuyeXz/5YQCyempc1TIr/x3Il6xTiVzqQPbbWFws= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515251; c=relaxed/simple; bh=3L4qTVaXVsHhZGtPKr5grk91uzRlksA5PWNKFDY+HD0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Uy4g8OEp3afiUDCHlbSHK7q2eznIJKWJV9EMC2wNSYkIGF57yNLRAyasI1J3/G70xr7fDi0gxHAcn3CyI9y5Wd+OfT05KZ5SxlTXFTO91IXU9WHa01HvyNsR8zqjV+oNjqLlmwctcNT1J7ixGU9BAs70/zaHJcxTEHUfAgxhIgA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=tKNsNaI5; arc=fail smtp.client-ip=40.107.201.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="tKNsNaI5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=y6E+eCLOxQj7kHgXpOvZPfZ93fMh6cwqFSM9kKdl9sbQgDEywKHowSyN+jxpLyg+jcF9Pb8TtrqVQMfkg+a/D7xYYDga04QUMJwktYWvy4rsqkFOdJXU2g++QIWbaxG2LrkwFOfLtwg+I0EFcW9e0XsW9xiK20njRMncoxXSTVLMXPT/L6Wrxcq2khQfoCVo4/sxiQM4jXvJGP0R2fWKsbo2iFWvIvLrpkZuA+ZCYBE52u/0e0g66MwruTvk90SqQaahEPmWymTWEwKx91DzUL0RTk8nRfOn/lpWWscXGshtznrCbTAxT6kKQcxJd0B7I8ZDOO9DcBhWBIZVw6T8Nw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=WwMMEhxYUtogO9ja4xvnvWwjCYS+isEdhmWIzJuXmR4=; b=nZzE6NGGJEOwCZTQ43JdZZWndBPZpNBkvzFIA4jFLwEBUDTq44y2p+aRgsZFXkZ0uPUK/aiiXqk9WDp8aWcEoLHburr4RKZ3XfpL1Rz4JaVgNy5VH16x5Rh91phjGd83Rq8klgMoxa+RDMWnduA5a4eiesenowDX1aO2PRtDQXwbThf0yyjSDcVDSh1vGA5K+CEdnb/04BeIlSewMYr/AV5pn8qaCBHHr3pBzZI8LESFcfh/v7EuH3mbbydWwSzwHvzueASlT+Xn+coapeiNi/EQdjtTq9vVRrRPrDWvNPm/mFTb6R568CyA9+00GgpS1d9CzubzevD/fTrHwak1lg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=google.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WwMMEhxYUtogO9ja4xvnvWwjCYS+isEdhmWIzJuXmR4=; b=tKNsNaI5a8MysdEYS79aYIJWmgsv822Dxb1NWsLFjrRGzicoYb4HaHR9JA8XGfBQfTMc8sZti7i2DpzMOVptAYLwyydWUAD75QLoWlbxLmtIYPI+QQmCgI6B/IcqeOxGYTTLuSoN5SLOaSNGnqe9FQ8o4rO+sSu7CUvZNKRWBo2rGCbTsgKVD4NAsBdeQs10ioUR8M+s7z40eAH1iVuEvzDUAL/f3cgufL6DDlYpG23yl2/1TIbsOwHEf716Cf5BCLEI695rrGFNyxnEvJCViXOWFesa0ctO5HP6LDKD6BVtwONW3ypTeIE1D+sjgnl9kwl64G9oEWUrGeTbQ0bv6Q== Received: from BN1PR14CA0022.namprd14.prod.outlook.com (2603:10b6:408:e3::27) by PH7PR12MB5950.namprd12.prod.outlook.com (2603:10b6:510:1d9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Wed, 3 Jun 2026 19:34:00 +0000 Received: from BN2PEPF000044A2.namprd02.prod.outlook.com (2603:10b6:408:e3:cafe::6f) by BN1PR14CA0022.outlook.office365.com (2603:10b6:408:e3::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.7 via Frontend Transport; Wed, 3 Jun 2026 19:33:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by BN2PEPF000044A2.mail.protection.outlook.com (10.167.243.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Wed, 3 Jun 2026 19:33:58 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:33:39 -0700 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:33:28 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 3 Jun 2026 12:33:20 -0700 From: Mark Bloch To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jonathan Corbet , Shuah Khan , Jiri Pirko , Simon Horman , Sunil Goutham , Linu Cherian , Geetha sowjanya , hariprasad , Subbaraya Sundeep , Bharat Bhushan , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Mark Bloch , "Borislav Petkov (AMD)" , Andrew Morton , Randy Dunlap , "Peter Zijlstra (Intel)" , Thomas Gleixner , Petr Mladek , Tejun Heo , Vlastimil Babka , Feng Tang , Dave Hansen , Christian Brauner , Dapeng Mi , Kees Cook , Marco Elver , Eric Biggers , Li RongQing , "Paul E. McKenney" , "Ethan Nelson-Moore" , , , , Subject: [PATCH net-next V2 2/7] netdevsim: Register devlink after device init Date: Wed, 3 Jun 2026 22:32:54 +0300 Message-ID: <20260603193259.3412464-3-mbloch@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260603193259.3412464-1-mbloch@nvidia.com> References: <20260603193259.3412464-1-mbloch@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF000044A2:EE_|PH7PR12MB5950:EE_ X-MS-Office365-Filtering-Correlation-Id: dcaa9c4d-6e6c-4fde-f4a9-08dec1a70f0f X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|7416014|82310400026|1800799024|6133799003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: 5H0uZVqEIt+9Bse6Wsksb5K/0ZrlDU0mPmMZtZjIOFf0Xb/FVf4qSVYSRg2RvRq2LQI/Vt6sULbr3GKCzvlDrFtpv0FVXZkMLYD9r5qaRXNFfX59UFEhb+mfl9kF3cEBPJOb4cPfdGg8VzZMYY3ucB3qdnveD1lWAllHcdk6XcwDiai3zFfy9YJTBJR7rdEEE6yX1S5RXqfdo9CfeJ9jR91gyOZ7UgpP0CU9NiJZFu+aCwiwd7+F4tgKFZFNqaDNq+yqlmK0ElSTauuhKuUuP4zEMEFvRq0eN9xa9DehznRUusb2DJeASmmaSIM8emtYkKzw9wyat9O6GhzgwU+4repQLE3ypgcxtOqlxULEWDYAiASG8Sk5QQB84I8+2RIAu7FKtcs6vG21USSSA379ApVkm3gmRrsmaD1kcpV3NrDGlavvplB3humH8+USSdcdv/QpGCpF6utJxovmplJ0wr/8jDj94Qzj1YCaAGmlpOLbCu80p0jxu/a/vvq/wpy0/QClqF79pnPKQBguqmXOKsSQLtUM9LNjhJPVScmhNWZ9umZKW+ET4lkBvHwd6Mz3ang1Wd8abUxQGW/OgyhDc7lAwTvnP1nIEQ82i3UqfSB1wf7hRwX/lKxZrL1Ab0j4Pi3LMH9DXGEia1LI7SQpwuuznkRyqmh6NvFoIvBksZTQ/aOIX5OoYXh4MiYvbeGLzF0+2PnjIHgk58ZQ13Kb/7gS6WBaIPP84hbFcrANysw= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700016)(376014)(7416014)(82310400026)(1800799024)(6133799003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: RDxfJqBaH7skHRL6JAxD+04o22Ut5LrlB9IQrySHL8EocyvATZgqf5tL2EGtN+Hd3UsM3MUiBiPw4L77dAsrZHj30vk5e4sDOE7MRKQsqmMgEeyhPlTwATp+iFdk/SDxg+2doHm3DP9p/L3mlO7levI5biOt9X5VoDX+3XjnVn6z/JDmbCTUvUdnZWnMMGhBQWB4tJAAYzGmptjGKXBg+4zSWNkRbWJqpRjw1E6HDOhiPTVnmvo1U6TNcS+HxrkSmUBLOFbBWtBqLEshklfFGm319fN20vBpj9MizpcBT/pU2TGky5VCcOehTMlQ3eo6bYQaItqcW9B275gED9y9jc0IdRwgnTlG60TTdRVU/5USNLRDxS3tUcgn6RmisRpE0vO7qng1mXCCUIQGlFflSlzmFnWRabzwoitWcXiDRquyuMtdvKswBzEd9CkygPpy X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2026 19:33:58.7951 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dcaa9c4d-6e6c-4fde-f4a9-08dec1a70f0f X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF000044A2.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5950 Content-Type: text/plain; charset="utf-8" devl_register() makes the devlink instance visible to userspace. A later patch also makes registration the point where devlink core may call eswitch_mode_set() to apply a boot-time default eswitch mode. Move netdevsim registration after all objects (resources, params, regions, traps, debugfs etc) are initialized, and after the initial eswitch mode is set to legacy. Move devl_unregister() to the beginning of nsim_drv_remove(), before those devlink objects are torn down. This keeps devlink register/unregister as the notification barrier and makes the later object teardown paths run after devlink is no longer registered, so they do not emit their own netlink DEL notifications. Signed-off-by: Mark Bloch --- drivers/net/netdevsim/dev.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/net/netdevsim/dev.c b/drivers/net/netdevsim/dev.c index aed9ad5f1b43..7cf4102b049e 100644 --- a/drivers/net/netdevsim/dev.c +++ b/drivers/net/netdevsim/dev.c @@ -1680,13 +1680,9 @@ int nsim_drv_probe(struct nsim_bus_dev *nsim_bus_dev) goto err_devlink_unlock; } =20 - err =3D devl_register(devlink); - if (err) - goto err_vfc_free; - err =3D nsim_dev_resources_register(devlink); if (err) - goto err_dl_unregister; + goto err_vfc_free; =20 err =3D devl_params_register(devlink, nsim_devlink_params, ARRAY_SIZE(nsim_devlink_params)); @@ -1733,9 +1729,14 @@ int nsim_drv_probe(struct nsim_bus_dev *nsim_bus_dev) goto err_hwstats_exit; =20 nsim_dev->esw_mode =3D DEVLINK_ESWITCH_MODE_LEGACY; + err =3D devl_register(devlink); + if (err) + goto err_port_del_all; devl_unlock(devlink); return 0; =20 +err_port_del_all: + nsim_dev_port_del_all(nsim_dev); err_hwstats_exit: nsim_dev_hwstats_exit(nsim_dev); err_psample_exit: @@ -1757,8 +1758,6 @@ int nsim_drv_probe(struct nsim_bus_dev *nsim_bus_dev) ARRAY_SIZE(nsim_devlink_params)); err_resource_unregister: devl_resources_unregister(devlink); -err_dl_unregister: - devl_unregister(devlink); err_vfc_free: kfree(nsim_dev->vfconfigs); err_devlink_unlock: @@ -1797,6 +1796,7 @@ void nsim_drv_remove(struct nsim_bus_dev *nsim_bus_de= v) struct devlink *devlink =3D priv_to_devlink(nsim_dev); =20 devl_lock(devlink); + devl_unregister(devlink); nsim_dev_reload_destroy(nsim_dev); =20 nsim_bpf_dev_exit(nsim_dev); @@ -1804,7 +1804,6 @@ void nsim_drv_remove(struct nsim_bus_dev *nsim_bus_de= v) devl_params_unregister(devlink, nsim_devlink_params, ARRAY_SIZE(nsim_devlink_params)); devl_resources_unregister(devlink); - devl_unregister(devlink); kfree(nsim_dev->vfconfigs); kfree(nsim_dev->fa_cookie); mutex_destroy(&nsim_dev->progs_list_lock); --=20 2.34.1 From nobody Mon Jun 8 09:48:39 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013019.outbound.protection.outlook.com [40.107.201.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 59A1148BD55; Wed, 3 Jun 2026 19:34:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515245; cv=fail; b=prga3C90wYMNatoOk1+grPXAe3hJ3psg+W5porrj7XIhKjfM+UJVz/48w6/gRlkOomfXN5ISTu9QmIWzZ1ab+x+nHtctxyyS3j1cEONUEQBX36pYPa+rAFBEx/5PyRFFbRhZwyQcBRRQfgBUdisCxht9acq33O8rM5rxHAct8qA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515245; c=relaxed/simple; bh=nm7x9ced9yIj3nXwNd69WS7p0FYoLxp7fH23WEpxfm0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=sK3zib9EAszjOUtJapaAg/FpnWUdd3FL/arawiIWPgI3HsI7qs/qe8bzIJkwobVZsvIjrfxwXydF7TaWOQZbokPmYSVuTQlXOJq8oWMr8b6pCm0e0KKbiUH4dIGpGvQAQCNwOgp6DFEvm5ky+nRC6Z2EtNmgA+Gh0mSUt7qHvuQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=A7eOxpHX; arc=fail smtp.client-ip=40.107.201.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="A7eOxpHX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QL2t2BBfZS0MgQ3MEJDHzcWTjLxuUifHP23xXDzrpTCKX7kEqp5cFAlmfFW7acwTIuFONJaT7XAFvOag8cmcoay/iunq1DmJAHjpZoQ26fu4EiEBWfaM3EgCKoq1UwBsDJO2ftGnDp+ycNlgq5VVk/3CB6juL0mbbCMo7aau+d5Mx6Tyr08hnszs9JoF8pX6NngTdTFAYJi6HrBiYtlIDh8gLiWczkEfsTLd/WnpGywd2A5N/MCx+xA6R/1jRPWkouLkFGjyIIcGBkSfRJZGPkyEICkJ6cae8G4Dah6SP6Tt0rFGoowsBvs34xRRB+wGHrp8L9niIbuMP6bRvv6PRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=nD0m/7A/DPGe3D8CCm3xi2pedqxzRC+YCS48sK6qaT8=; b=mIESZt7nWw7GoR99s73o7oXk0MN6oM91uihgFsnHn6H62HKliHBbIrKCjJ+kKiPJNofnJshPi2FRjdeecdT11x9Dpg+gUC1iIbZkeF9Uw49Zqsn4XRvLfxJBIalQu5HOze93jOV7K3G/F5Hmi8QUftALH3u9xtZrtz4TeuzenQqcyNiRTAcNdF1kdB+3SOqpo/xM21oGjCRVKmL919ShqMkGjLzJbjL2JK7f49OSEaGiLTbGCAd1cc6Jw+ltp4grb312CVzA1FXiaRG3fSj4XOBXLaGMRouUQ5QJLHJCl8LFxxm05NCDojL0jBWA5tCUnpFLjBTAILYgdnGjxhMAKg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=google.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nD0m/7A/DPGe3D8CCm3xi2pedqxzRC+YCS48sK6qaT8=; b=A7eOxpHX8ablJQsfuqrzsR/hTF+rCRfgfOkqHYC29syRJDuf3/ykXtdsLsZ12ZrIGBXTmReBE7q7yySQXjTgP4zD4ANXxfjXdTJCnIMtD1hW712dTsEgfeXV+7htpgTMU6RbKe7zxdlp/GqLkqpapwEmuHo3xFvaAkmOFYjlCy62mPqpntLtx43v6qRDZumREcmFnwEewyX65SVUJVbpBY5jQwt8apYyBV4EetG3XMHGcRRBfwtim5jfWmkACqbt5HZsmfiQLPpxg4yQ6Txs67pxMRk6YB5EsSxi8UKU4WVu/zJBjuHLbIcPWvmMQpyxzETp+wiX1F+DjNFWBx3vKA== Received: from BN9PR03CA0170.namprd03.prod.outlook.com (2603:10b6:408:f4::25) by MW3PR12MB4361.namprd12.prod.outlook.com (2603:10b6:303:5a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 3 Jun 2026 19:33:58 +0000 Received: from BN2PEPF000044A0.namprd02.prod.outlook.com (2603:10b6:408:f4:cafe::43) by BN9PR03CA0170.outlook.office365.com (2603:10b6:408:f4::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.7 via Frontend Transport; Wed, 3 Jun 2026 19:33:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by BN2PEPF000044A0.mail.protection.outlook.com (10.167.243.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Wed, 3 Jun 2026 19:33:58 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:33:39 -0700 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:33:38 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 3 Jun 2026 12:33:29 -0700 From: Mark Bloch To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jonathan Corbet , Shuah Khan , Jiri Pirko , Simon Horman , Sunil Goutham , Linu Cherian , Geetha sowjanya , hariprasad , Subbaraya Sundeep , Bharat Bhushan , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Mark Bloch , "Borislav Petkov (AMD)" , Andrew Morton , Randy Dunlap , "Peter Zijlstra (Intel)" , Thomas Gleixner , Petr Mladek , Tejun Heo , Vlastimil Babka , Feng Tang , Dave Hansen , Christian Brauner , Dapeng Mi , Kees Cook , Marco Elver , Eric Biggers , Li RongQing , "Paul E. McKenney" , "Ethan Nelson-Moore" , , , , , Shay Drori , Moshe Shemesh Subject: [PATCH net-next V2 3/7] net/mlx5: Clear FW reset-in-progress bit before reload Date: Wed, 3 Jun 2026 22:32:55 +0300 Message-ID: <20260603193259.3412464-4-mbloch@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260603193259.3412464-1-mbloch@nvidia.com> References: <20260603193259.3412464-1-mbloch@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF000044A0:EE_|MW3PR12MB4361:EE_ X-MS-Office365-Filtering-Correlation-Id: 8bcd1249-a4e8-4abc-8f96-08dec1a70eaa X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|7416014|18002099003|22082099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: Aa1OvWNHdR4LoHDLHLkNdFi/KlaSktWAGoSxTVhUWoeDfhPEHBMk4bLB6EQYPEmX8DbJNMy1s8VvLSYoPoPz8SGqG5GoyQsN9uag+pi8NhCjVYBbAFvgbWiso1YFiDOHc2hGhWnDz0fu2/YFA2EtG1CqgkUZslFF+8olCKUV9Y6WU43uZm91GRDdClu98FEKAZWa93Rxj1oBQiv/lMVGEBySbOlKWRMAWndEzn40JP5A+YkS/MjOCCpm++nxuB0ilAgLzyOmX9KCenpnkane2q72xyOudyWohX85eQwkGiJTscno2g6iV34Xrw/nJ+JQ4arzVq/Rel2mXqS5dyaOAU2LOPqZpYXgWseAbFVVOwjsmpOGR3koDtf3MiXhLHNX5KrJI/9zu3+46f8f47ruDWo+uYqGhtOnRVRlxlx983iaYgG50jYi7spdmLtNDqxnlSqxt0qkdT6X2rdeudixdsR/XWRqllFCAavHmPennqk46c7uwKvScNUFI50QjjITpQXRbAAaER9DM5ubgE5O3Bcw0IFxRRjFtgXRucORCP6/Q28tgVpXsL+2Jg7wM62F3BGXpb4Rm2MqZMP9Nbo4RMbHU1E+/mDxTPuxpYBBjWjSH5pRxXZeKDHNKv4YG7QfXPCO4nLvBKU8oZKatKB+kt8Ype2LTYBHYG2N1OPDH1TEoabnXPpJghw0c0Q/wjCZN5TFerEg4wCMBj7ZJXKVZxBJKvf/KjGJHzfNBhlBiV8= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(7416014)(18002099003)(22082099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Dv48wowCYw8osnjMJo6u5wXGI5n+FKsFQcy5VmGQzmHI0DCIXI4nOZCzZc20mIVeLkbOowwFFs8cpVJdHv6gJM97gMwl5aA6NbXbB9GYPVuSj4WIZwI1hsKGWJc/IPW/PZqEON5gYPF7cYKd1aUIOTQ8B4YOpXpHVgfVdLVJiMhkmPsNDVmhr/Dx1lhRBHnmTxyLrC294ZpydNziIE4yPFPmWLfyw8Ni4WdVX7lNG3gf6EDdLf61FTLBiJYaZSEaRRS+Vni35MiP6Thdj4H6TETc62kX8YHopNA2GzoZA/1CAcXKuGfSSzh6spxpUus7wy/T4m6suHybeo7KI2d9CQz41SCozxB1UJtFKAEUgJdTX3PSPIVl0bX4rsENhuTvZcSVwKJfaj+CKoECXVsgnDFL3u0IGgu42p0iT7vMTERm3lfsk0Wuf2+4QAZ34wH8 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2026 19:33:58.1356 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8bcd1249-a4e8-4abc-8f96-08dec1a70eaa X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF000044A0.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR12MB4361 Content-Type: text/plain; charset="utf-8" mlx5 sets MLX5_FW_RESET_FLAGS_RESET_IN_PROGRESS when acknowledging a sync reset request. This bit blocks devlink reload and other devlink operations while the firmware reset is running, but it was kept set until after the driver reload finished. Clear the reset-in-progress bit once the reset unload flow is done and PCI access is back, before reloading the device. For a reset initiated through devlink, clear it before completing the reload waiter. For a reset reported through an asynchronous firmware event, keep the unload flow outside devl_lock, then take devl_lock before clearing the bit and reloading through the devl-locked load helper. Reviewed-by: Shay Drori Reviewed-by: Moshe Shemesh Signed-off-by: Mark Bloch --- .../ethernet/mellanox/mlx5/core/fw_reset.c | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c b/drivers/n= et/ethernet/mellanox/mlx5/core/fw_reset.c index 07440c58713a..7283e5b49eed 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c @@ -238,24 +238,30 @@ static void mlx5_fw_reset_complete_reload(struct mlx5= _core_dev *dev) { struct mlx5_fw_reset *fw_reset =3D dev->priv.fw_reset; struct devlink *devlink =3D priv_to_devlink(dev); + int err; =20 /* if this is the driver that initiated the fw reset, devlink completed t= he reload */ if (test_bit(MLX5_FW_RESET_FLAGS_PENDING_COMP, &fw_reset->reset_flags)) { + clear_bit(MLX5_FW_RESET_FLAGS_RESET_IN_PROGRESS, + &fw_reset->reset_flags); complete(&fw_reset->done); - } else { - mlx5_sync_reset_unload_flow(dev, false); - if (mlx5_health_wait_pci_up(dev)) - mlx5_core_err(dev, "reset reload flow aborted, PCI reads still not work= ing\n"); - else - mlx5_load_one(dev, true); - devl_lock(devlink); - devlink_remote_reload_actions_performed(devlink, 0, - BIT(DEVLINK_RELOAD_ACTION_DRIVER_REINIT) | - BIT(DEVLINK_RELOAD_ACTION_FW_ACTIVATE)); - devl_unlock(devlink); + return; } =20 + mlx5_sync_reset_unload_flow(dev, false); + err =3D mlx5_health_wait_pci_up(dev); + + devl_lock(devlink); clear_bit(MLX5_FW_RESET_FLAGS_RESET_IN_PROGRESS, &fw_reset->reset_flags); + if (err) + mlx5_core_err(dev, "reset reload flow aborted, PCI reads still not worki= ng\n"); + else + mlx5_load_one_devl_locked(dev, true); + + devlink_remote_reload_actions_performed(devlink, 0, + BIT(DEVLINK_RELOAD_ACTION_DRIVER_REINIT) | + BIT(DEVLINK_RELOAD_ACTION_FW_ACTIVATE)); + devl_unlock(devlink); } =20 static void mlx5_stop_sync_reset_poll(struct mlx5_core_dev *dev) --=20 2.34.1 From nobody Mon Jun 8 09:48:39 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011047.outbound.protection.outlook.com [52.101.52.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 232BF48C3EE; Wed, 3 Jun 2026 19:34:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515264; cv=fail; b=WZ8zFI32Qm4YIIEZIZ5IQB2XvImfxoQgZOrEpfyc5flLKFlS41MhJuODGXG46u3/1aGWDpcao10X4sWlqXuTNg2SlVb3zkPFvWmG/THz5vESIqXiH/oa0Ucy3Foocz2i01RHXeTYp6tv4/+6kn8ShK2x2c3Suq7PmEen0CvEcAE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515264; c=relaxed/simple; bh=RN65OY02mpeMdw2wxqvPBOlusAFxX1I22MIU9jK28Bk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=lDwnPDvnXlBLqsj/NFJRdieFBvoScsFy9vYVPgaS8Dz5JGuSRNRBlH4J5zwdEZdH37lOUBEHA4NQ77pKbz+uZHlHpl75uiLcTH2Uq+kehmfnzP8Od5suYujNKfh9Gs+V2RfB9mdV00bygKEPH44Cm0rEbxBxlbuRFp0b4HL4nvc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=mJvCVsZV; arc=fail smtp.client-ip=52.101.52.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="mJvCVsZV" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wKbM/FOkWdcDEQsY7lPSa7buNUbm0vouDFUxDurivqRZMwfAJLQRThpBTiKbOPAb0i3lE8wKwRSWMgq6dx/g5yo+tNf9LaIiOpVhxmhn1oG6eb1aMQ8ThynRRZLMKLRysvzLZ2pzfuvBpQEmZ0uRSdKHoG6fzxh5J7qFSKlDOlR1AZNt8ZciNXaNNGlw5fiuFYpEegk9rfT+Fqtsd5tjaYjFuSaA4EcJQqqZ/GXdCamMmsoGTT80pJmg9iH9hj+jwz55YyUSm9LNtRYsx4YI24V8aoVrQP/kAd+MJ0BnrKlf4OD0g2hBEkPceStfe+eKcIQhPLziK+1C/qXfEVf1mA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=4EcDVjXvMslhxg5WvUNRPiUdDDUNtWachhUPQFetDR0=; b=iivY0hIFiiOxHHeu1sCZmFW8G5MJgJD8WxopmbVHbwcJzAYmM8ZGKYo8fAEnlyvsrW4jbgmx+CpwhGP+r4yPseC77JP4OM+oJCwFXMgBCGK3/xcQdxcLyEVmjAPGGuT2mxNoG9QrFOcZomHiGbCwHUfOB3ovlb8utkw2yQrOzPENDdVzev2kWsJcRSrQNcosey7NV3RK3nWkqKMciXDvQ2KmoNgtpGvQNe6l2u4+x8cZsosRdhMjrJMmmiRqG02UON17rSCPAvO+9SswSNTMrrKSbz6bG2n75JQ3y6PU6bWF0VPtbLThF73V+e6On8YpV7WEUPtEcOTTkG3pLT3juQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=google.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4EcDVjXvMslhxg5WvUNRPiUdDDUNtWachhUPQFetDR0=; b=mJvCVsZVNoXrzUexi5E3Zq7/yCjrtEq8uH078uxRJk1P/WVw6I7ozm9oi7dA/wFEWlspsLYeWqPfM7XrojT0CceC9RR52HSxLd5ZcWV57za0kkvJYNLHEKq9//K9V9LU2U4ziEVZILw5WHKL6shodG+OUywMRz5166sOtWZlzDTGA2+IOFyZIhaa54cbz+BDTGA2ZeDHSvD1ivskt51/3bB2GrkeU44BgDWhWM/Ow63irE0YUsZjkRVOZ51KU2Wx3ig1FflYtAdsyv/GuoRJlhwDnU1XN9K1i1732L2Iet7D0MoXin6o5meFWc8EPmOys5UAosawiqk9C/wHxXAXlQ== Received: from SJ0PR03CA0019.namprd03.prod.outlook.com (2603:10b6:a03:33a::24) by BN7PPFABD533732.namprd12.prod.outlook.com (2603:10b6:40f:fc02::6df) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Wed, 3 Jun 2026 19:34:09 +0000 Received: from CO1PEPF000066ED.namprd05.prod.outlook.com (2603:10b6:a03:33a:cafe::16) by SJ0PR03CA0019.outlook.office365.com (2603:10b6:a03:33a::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.7 via Frontend Transport; Wed, 3 Jun 2026 19:34:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by CO1PEPF000066ED.mail.protection.outlook.com (10.167.249.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Wed, 3 Jun 2026 19:34:08 +0000 Received: from drhqmail202.nvidia.com (10.126.190.181) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:33:48 -0700 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail202.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:33:48 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 3 Jun 2026 12:33:39 -0700 From: Mark Bloch To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jonathan Corbet , Shuah Khan , Jiri Pirko , Simon Horman , Sunil Goutham , Linu Cherian , Geetha sowjanya , hariprasad , Subbaraya Sundeep , Bharat Bhushan , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Mark Bloch , "Borislav Petkov (AMD)" , Andrew Morton , Randy Dunlap , "Peter Zijlstra (Intel)" , Thomas Gleixner , Petr Mladek , Tejun Heo , Vlastimil Babka , Feng Tang , Dave Hansen , Christian Brauner , Dapeng Mi , Kees Cook , Marco Elver , Eric Biggers , Li RongQing , "Paul E. McKenney" , "Ethan Nelson-Moore" , , , , , Shay Drori Subject: [PATCH net-next V2 4/7] net/mlx5: Register devlink after device init Date: Wed, 3 Jun 2026 22:32:56 +0300 Message-ID: <20260603193259.3412464-5-mbloch@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260603193259.3412464-1-mbloch@nvidia.com> References: <20260603193259.3412464-1-mbloch@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000066ED:EE_|BN7PPFABD533732:EE_ X-MS-Office365-Filtering-Correlation-Id: 07584d26-6f0d-47c4-e333-08dec1a714d2 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|36860700016|82310400026|6133799003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: ep+rkXXe/y7ee7/4zYh+NELIWmlz3ffjY6t6bzk8B59VxFu7uUmSA78tEJ7gurB3FxRRcTVYMfL/aBO14km+7IQJSnv22vcEyghxYrdDE2YHfiABSSJea98nfXdh/Uq+lzSQeyYFTcZtDO3y5EtvkEJn5Jq0wDkVF/m5sOA2JjG/YCH6NtCKAEYdJ0WW1/vmFDX9FGZ8DiDUdKok8MJgmXfxqqd4fBo6rzG+ctFiojVJh+eWlqD0ZYppIVIFT8+VRKp0NN9J/7zOkC/vLzPyoyI1iIZNtoGFQ4hEuxVB92gEugfQLL1Jx+EiOyBstIBjki4CuOiQlqWzqturgi1tRb4w6A7NchkR5P8+A7+UJLHttkvN+mPufMob7UekL5H3njqVEoG5/oPUa5cpKQkFTJ5YTAr+8M+AxDvgD6kyamOf+uBVr1Z/NUE/10b2P/YXt29Lo2+JKrGaRIichhCNu7FIrFYyLmWMO1JWQzJtxuIpgua5/qhKqV2hgeeQdPk2Tv9VmON211Bmd40j9CcAprAbti4CvyzUJihLJrk2uxanwMaxFlLFDmtr0uF1IlJELAHeP6HFxfMAVO1ZS0MFK2Bu/AIApaD19vZ7RZVpdKOnWet23MkoUH3EQgCGg4IOo4TqjHGKul5zPxrxZ3DIc5B2FpsjHsuIJN/X2YLcQPkU/0NV3VPd5wWXcPqknxqhRCu4rQfEB09AMnhsfCK14D+Hw/Lc3DMkKiZxyHerr1k= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(36860700016)(82310400026)(6133799003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BVxlnWBqlXQzMXuOS1BGEWRIMqLK9yOWFICN/HSG929bQ0fnYh+TkpQUhpXr3M3Aan+/wU6XXTtY1XVXxcyd8x7dokTDR8FFsAwmok9ZsnT7+Rh4OCM490TuqzOhZDsjWo8JP8XgWIf7vEcvJEN3uTZQQgo03OGjK9ek10rlkjNfYzREjGFU1vy393mTXitzuNDDKTpxwOTpYw0yaEgsQ6YHft6Kz6cBUadyJ3p5KOa5qN+S/L8uvwaZ9V5wAW0lZ/t36kLLusfH8vZXwHBa3xaCfTyAttzI3zGBcQRV551/8eZwDygIbCTGjKtTYzkjd+XQrLKR4MMYftq1kIypffyw5fxkkmmWiflhglv6m/6YPMT52VKGhhMx8HquQ0uxbxfhtDqNOJlVg7lDEf5VVM9QmsY/4Fd180IROH7seygjdmRB7vfw7nF43UsWN5rd X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2026 19:34:08.5582 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 07584d26-6f0d-47c4-e333-08dec1a714d2 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000066ED.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPFABD533732 Content-Type: text/plain; charset="utf-8" devl_register() makes the devlink instance visible to userspace. A later patch also makes registration the point where devlink core may call eswitch_mode_set() to apply a boot-time default eswitch mode. Move mlx5 devlink registration after mlx5 device initialization completes, including the lightweight init path, so registration-time devlink operations see initialized driver state. Move devl_unregister() before the matching teardown paths, so unregister notifications are emitted from devl_unregister() before mlx5 removes the devlink objects. Add a devl-locked uninit helper so failed nested devlink setup can unwind the initialized device before the instance is registered. Reviewed-by: Shay Drori Signed-off-by: Mark Bloch --- .../net/ethernet/mellanox/mlx5/core/main.c | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/e= thernet/mellanox/mlx5/core/main.c index 0c6e4efe38c8..ab3d3ff10f1a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c @@ -1455,31 +1455,40 @@ int mlx5_init_one_devl_locked(struct mlx5_core_dev = *dev) return err; } =20 +static void mlx5_uninit_one_devl_locked(struct mlx5_core_dev *dev); + int mlx5_init_one(struct mlx5_core_dev *dev) { struct devlink *devlink =3D priv_to_devlink(dev); int err; =20 devl_lock(devlink); + err =3D mlx5_init_one_devl_locked(dev); + if (err) + goto unlock; + if (dev->shd) { err =3D devl_nested_devlink_set(dev->shd, devlink); if (err) - goto unlock; + goto err_uninit; } + devl_register(devlink); - err =3D mlx5_init_one_devl_locked(dev); - if (err) - devl_unregister(devlink); + devl_unlock(devlink); + return 0; + +err_uninit: + mlx5_uninit_one_devl_locked(dev); unlock: devl_unlock(devlink); return err; } =20 -void mlx5_uninit_one(struct mlx5_core_dev *dev) +static void mlx5_uninit_one_devl_locked(struct mlx5_core_dev *dev) { struct devlink *devlink =3D priv_to_devlink(dev); =20 - devl_lock(devlink); + devl_assert_locked(devlink); mutex_lock(&dev->intf_state_mutex); =20 mlx5_hwmon_dev_unregister(dev); @@ -1501,7 +1510,15 @@ void mlx5_uninit_one(struct mlx5_core_dev *dev) mlx5_function_teardown(dev, true); out: mutex_unlock(&dev->intf_state_mutex); +} + +void mlx5_uninit_one(struct mlx5_core_dev *dev) +{ + struct devlink *devlink =3D priv_to_devlink(dev); + + devl_lock(devlink); devl_unregister(devlink); + mlx5_uninit_one_devl_locked(dev); devl_unlock(devlink); } =20 @@ -1635,7 +1652,6 @@ int mlx5_init_one_light(struct mlx5_core_dev *dev) int err; =20 devl_lock(devlink); - devl_register(devlink); dev->state =3D MLX5_DEVICE_STATE_UP; err =3D mlx5_function_enable(dev, true, mlx5_tout_ms(dev, FW_PRE_INIT_TIM= EOUT)); if (err) { @@ -1655,6 +1671,7 @@ int mlx5_init_one_light(struct mlx5_core_dev *dev) goto query_hca_caps_err; } =20 + devl_register(devlink); devl_unlock(devlink); return 0; =20 @@ -1662,7 +1679,6 @@ int mlx5_init_one_light(struct mlx5_core_dev *dev) mlx5_function_disable(dev, true); out: dev->state =3D MLX5_DEVICE_STATE_INTERNAL_ERROR; - devl_unregister(devlink); devl_unlock(devlink); return err; } @@ -1672,8 +1688,8 @@ void mlx5_uninit_one_light(struct mlx5_core_dev *dev) struct devlink *devlink =3D priv_to_devlink(dev); =20 devl_lock(devlink); - mlx5_devlink_params_unregister(priv_to_devlink(dev)); devl_unregister(devlink); + mlx5_devlink_params_unregister(priv_to_devlink(dev)); devl_unlock(devlink); if (dev->state !=3D MLX5_DEVICE_STATE_UP) return; --=20 2.34.1 From nobody Mon Jun 8 09:48:39 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010036.outbound.protection.outlook.com [52.101.85.36]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3863F48C3F9; Wed, 3 Jun 2026 19:34:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.36 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515266; cv=fail; b=s2xdlA+Tsi8HPj7ErtWUtqJDSJBq+CsyIQRDeFjcZvqHA3jARb9ZTBwDO4s6v/IWKSx/czgl+C32y2uD8EWp7169H3RaLR67N/w7iPbWzVMjoHROKI9H0WYAt0cFnCXFT2tKmtEf76PS4+Idjog4de00j4DQepbAj2xFSdTfxVs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515266; c=relaxed/simple; bh=XUdKELfHR0Vvjr77yA1zFiETp3lbfz7SjOS2SNNHBfY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=NNChwmaNvA+D6BmtSicII187mGCWCqqMEux8vc/KL/iedaor3rP+mlFjOZRY+BuaAxVEtuRT3guGcS7Q8MERde+gPFhSG+2AOupoDJAg+86uvn57aesPxgDgxLGWwllAe2XLZiv6s395nWsLSxP0c/nPCANZPEj8BxqNKnZPLCQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=VNiqmhQa; arc=fail smtp.client-ip=52.101.85.36 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="VNiqmhQa" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=d0M4sWRrqGQEA1f86eNUzc8nONYQGffjf12VrH1UBS3wHEEJh+IDpmpIi/C9UjzcH/+nAcP01/zK4SdFaiE4ZSwdvIC5ajqJF1QHdYWizfYPXUpN1VFaaqyG3udZo00vqJshW0VKLLAfRQWy/CYucarHBGg7KSG6RraTkgJiWD9Zt9mHnU3EkUUCF/eHa9g0ICLJFA/OQXH0UlwmwOnmcCjBRbRxrkbSN3dENuNZWBCAlyOFmJli6Ir78HVcJnUme2e3FJSeN0VGzi0RAsSL8iVIAcGCirgtKXdtk/pg5ISm/UOSbCWJKeYCxw+3N6cDC6gbknHMe8X3CzudPedE4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=y8LzT1SeYqLnJp7n0ocDF14XXGV2gFKqtsGqf5mcRRU=; b=oiQ4g6+cRxxtteZnL3v0s/pc1xp98qSZ18f1JAJ58qS74lwdy/wSjstGmGdgx3ZsAItkufNatwfYN0pcqUASolv5peXUSZEPVyV3vSXvkiIORp2QISlBm44C5eMHgtHUgqhuFMG8ahNFf6yUpymW0Da3e5qZmUhkQtR13kvlp4GQjubjgpE1JspTFttSbyc/qm9s7KqMAAWm8VvvQXjKognuxK/URff2FDBAd7VmU+P+E75yaaqcW9YPXzTsVFfHjCYLzeE5p4264I2qlrik93LYXKCTVoT2NVUfOCENGeLDU+HnAuD7N2UWobaptG4/XHhySiJHcuk0DR9NmihQEA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=google.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=y8LzT1SeYqLnJp7n0ocDF14XXGV2gFKqtsGqf5mcRRU=; b=VNiqmhQauGQ8OHOxkKXvVelxxCfyntePzkbVKE04QjvN4yWTk85wGgQ7myT7WChBxp3dIkSCGWrOINU0RLJImvHLAJaLsj+uTjElmAP/P8+qDE1LLbLr+5psporcQt0CmbmNQvEGsRn7a2u/sQDOxl6iQ0t5Or7nX+QjbKQbX3JIDpCEV1e7K3Ekptny0Tdpf1vVeVGtjNmjExgKx/cXwV/2pD481JPkMfz1Dl8sc5MUMcHixGLJklTPlUblJzhrLXbu51eF17Qq2DapxbfEDZ+AzA/diqdxr+vsErDd6nb9Kv0GEFRO08u2iaBQyd7Pw0+QDZCjaUJzviSuDdyviw== Received: from MW4PR04CA0043.namprd04.prod.outlook.com (2603:10b6:303:6a::18) by DS7PR12MB6336.namprd12.prod.outlook.com (2603:10b6:8:93::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Wed, 3 Jun 2026 19:34:14 +0000 Received: from CO1PEPF000066E9.namprd05.prod.outlook.com (2603:10b6:303:6a:cafe::83) by MW4PR04CA0043.outlook.office365.com (2603:10b6:303:6a::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.7 via Frontend Transport; Wed, 3 Jun 2026 19:34:14 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by CO1PEPF000066E9.mail.protection.outlook.com (10.167.249.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Wed, 3 Jun 2026 19:34:13 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:33:58 -0700 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:33:57 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 3 Jun 2026 12:33:49 -0700 From: Mark Bloch To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jonathan Corbet , Shuah Khan , Jiri Pirko , Simon Horman , Sunil Goutham , Linu Cherian , Geetha sowjanya , hariprasad , Subbaraya Sundeep , Bharat Bhushan , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Mark Bloch , "Borislav Petkov (AMD)" , Andrew Morton , Randy Dunlap , "Peter Zijlstra (Intel)" , Thomas Gleixner , Petr Mladek , Tejun Heo , Vlastimil Babka , Feng Tang , Dave Hansen , Christian Brauner , Dapeng Mi , Kees Cook , Marco Elver , Eric Biggers , Li RongQing , "Paul E. McKenney" , "Ethan Nelson-Moore" , , , , Subject: [PATCH net-next V2 5/7] octeontx2-af: Register devlink after SR-IOV init Date: Wed, 3 Jun 2026 22:32:57 +0300 Message-ID: <20260603193259.3412464-6-mbloch@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260603193259.3412464-1-mbloch@nvidia.com> References: <20260603193259.3412464-1-mbloch@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000066E9:EE_|DS7PR12MB6336:EE_ X-MS-Office365-Filtering-Correlation-Id: 9f9b9cd4-5231-48ef-7835-08dec1a7180b X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|36860700016|82310400026|11063799006|22082099003|56012099006|18002099003; X-Microsoft-Antispam-Message-Info: VNpZlhsBVEwY7YoxOlf+zsy5Jz8+Vrexr4riDlT9Ql2BG++8YI2NNFOExKPuENQ1EghPv9nn/nApDllBHH8kEEp4rbjxN9sRAoEHGDma0/oz0QH72lmRl9wL981mCri7N6f2RCUl3xBrKqew6PcW4ScO82znMQ/JgT8nFJMsV3yzN5AgFVF2N/8FGpgdXZ6BNmhdJKkygYiQT6nevER4onQLtzDrITgHMd1NpAU3m6af3X5gRTWlS/06mop4DBlrYBVSX44DFYFL85xFKUAUPB6uesuCgsrQnB9ZrCkGMBqOHEKKdItAoBz3k3QRTbSo0gTiMc+PB+1VtKVm+N0Fh0KdPzkqV4ePvIydhVxWw8NdbgAN9iD3YxyGOvAyle35kCpu0Ly6+Ss8PwSuoadSyyew9yaFw7lMe6nK+tKbfDz8jHndU63y2y6rn00lU2otNRgLXp5Ufec1vFFIR6aUO+KnummIiyH+v3fQabV6zuvUqOhHPL1z7b2m3pmf+O2Lw9tNgqoOR81zEFkUlsruPHrXfXC/OiVb7tMwg17ZowwC/ibxwt4XlEA9h8FZev71WMVT7PrWH2hoRkuIBdkgtufpgmN0eOV84PcLoZ9e1m/qj/iTBaLdc7+mZFvRsH+BJHShwSjirynlTFtws4PYr9fG1Ea3fDPgica05devB/SNtQsyf1LcjDn7sl57PvCVuKJSea8K7yge+1pmBhCU3zI7wvvAKABnVLdLkIjLKqc= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(36860700016)(82310400026)(11063799006)(22082099003)(56012099006)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ubOrkRTdaU+O/7pDh9MDzUN/MlU3tHpz6lqdax84P6S9+Roak9V/c7xdC/TwgGJEN6MKsKn0mXUSGeiS7+eLusWhwURkqLjbA8JY+qC1fWrgVHBzYog9kE11cvnsjyCqc9KesBCjgo2Bcu8ORCFDtpUxegLfzFvB5C/wh7sLnqWuD52oL6QT817w0nl1Thhy3s58ylIhWyA4fr3muAqDUrg1TIUX2ccqmkX5QvzavMNC179rr+rWeRz5PuDch9zKVC7dDYV//8yETTQbFt0+v1aXOizyO59HQmt7NEKgfPYUqUooY8z5uzOaIeHhjpi7DnQy68H5/vw0U46j/vfwfpLeE6h+qZgFQYyxGk6zTg9iJ2zIuz7VyXksN1l7Lo2+K71fmnRemg9UsuSczb2By5rvUsh0nB98SCHx4vKDBWXV50hz8iPQ+BHVnrIDoOuy X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2026 19:34:13.9702 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9f9b9cd4-5231-48ef-7835-08dec1a7180b X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000066E9.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6336 Content-Type: text/plain; charset="utf-8" A later patch makes devlink registration the point where devlink core may call eswitch_mode_set() to apply a boot-time default eswitch mode. Move octeontx2 AF devlink registration after SR-IOV is enabled and the representor switch lock is initialized, so the AF eswitch mode set path sees the state it depends on. If devlink registration fails after SR-IOV setup, unregister interrupts before disabling SR-IOV. This keeps the AF-VF mailbox IRQ handlers synchronized before the AF-VF mailbox workqueue is destroyed. Signed-off-by: Mark Bloch --- .../net/ethernet/marvell/octeontx2/af/rvu.c | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c b/drivers/net/= ethernet/marvell/octeontx2/af/rvu.c index 3cf131508ecf..c2b52eb4ffab 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c @@ -3545,6 +3545,7 @@ static void rvu_update_module_params(struct rvu *rvu) static int rvu_probe(struct pci_dev *pdev, const struct pci_device_id *id) { struct device *dev =3D &pdev->dev; + bool sriov_done =3D false; struct rvu *rvu; int err; =20 @@ -3634,26 +3635,27 @@ static int rvu_probe(struct pci_dev *pdev, const st= ruct pci_device_id *id) goto err_flr; } =20 - err =3D rvu_register_dl(rvu); - if (err) { - dev_err(dev, "%s: Failed to register devlink\n", __func__); - goto err_irq; - } - rvu_setup_rvum_blk_revid(rvu); =20 /* Enable AF's VFs (if any) */ err =3D rvu_enable_sriov(rvu); if (err) { dev_err(dev, "%s: Failed to enable sriov\n", __func__); - goto err_dl; + goto err_irq; + } + sriov_done =3D true; + + mutex_init(&rvu->rswitch.switch_lock); + + err =3D rvu_register_dl(rvu); + if (err) { + dev_err(dev, "%s: Failed to register devlink\n", __func__); + goto err_irq; } =20 /* Initialize debugfs */ rvu_dbg_init(rvu); =20 - mutex_init(&rvu->rswitch.switch_lock); - if (rvu->fwdata) ptp_start(rvu, rvu->fwdata->sclk, rvu->fwdata->ptp_ext_clk_rate, rvu->fwdata->ptp_ext_tstamp); @@ -3662,10 +3664,10 @@ static int rvu_probe(struct pci_dev *pdev, const st= ruct pci_device_id *id) rvu_alloc_cint_qint_mem(rvu, &rvu->pf[RVU_AFPF], BLKADDR_NIX0, (rvu->hw->block[BLKADDR_NIX0].lf.max)); return 0; -err_dl: - rvu_unregister_dl(rvu); err_irq: rvu_unregister_interrupts(rvu); + if (sriov_done) + rvu_disable_sriov(rvu); err_flr: rvu_flr_wq_destroy(rvu); err_mbox: --=20 2.34.1 From nobody Mon Jun 8 09:48:39 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012061.outbound.protection.outlook.com [52.101.43.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B2F9148C40F; Wed, 3 Jun 2026 19:34:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.61 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515277; cv=fail; b=i9rrzdPCQS10706I12YDQuwRh6g8yC+3N0r/KJq7iZpYZxhlnt8OhMsYCKZH0vlnnTCE2wRFxub1T13zckVHwe+dS4a65SMrHl5xHrC3+Pwl3bGDGnVC+2Jj64FvfY1iDDUVIN6EXLHfZ20380bDhKVkytqQDMGzi7FVsyv+6Rw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515277; c=relaxed/simple; bh=jSch0ciHaAM1sWMZMwjvlyCb+JrlevS5niw4TmhB6+0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=p/RZpdAk+mQsvyTJUHewIvpBT+PAjXFXX2Zv4Kp3PVxKkPYLZgCyX3qH2B0I5xGdGcUMVwOCHE/SBSRG+XjHLyZ/fbiMMbzBjCVywbiyz4dIiIZs/7Wr+Vwkr8oKTeLfEvptzx1WD8H5XHcYtghrz3TW+5mf6unvT3K/dpkCVqM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Fgtfv08w; arc=fail smtp.client-ip=52.101.43.61 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Fgtfv08w" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=r2xXGEmINOpyS8aMsj/zZRK5TTpEJy+qYByyFhD5f1+/gtGGNb8MmlwL4hN56V9Ku2ca+2Mb9uAagD8tttEiaLcecZDJwz5Vjwz54JGlezavzayEwP1AKCZbfaaW/PsixfgEYAp3VXECMRq7cATZ7zHt31pc/bzeOQ18TI8AMdjYFJi96QFWgdLxihWmbpBcj9oY8FI6FMP8xur4Ey2yxDcrFvWwlav8p7L/eMjerqxb8oSqIBNRVAyLccEODSAi/+qEhlQElgl1Mka7jH2Vtv8Xf1fG9i1bCd5XR4AVRI3Mk4EMoww68pMZfbbV4bs0PyDEYHlXE/7AQavF+xLjvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=9Fjh6Va9is1UKXphs4R/KE5/TgQpuAEqDeLTgySmbZw=; b=nNZguOT0BMiPHjUKwFmLHS20Nq3U59gAF+Uwy+jtYym6kpEdK9gYaRLyD6bC4NhV0SxR2y23U9jP2WQTEkwH5hi4PXmaTsdLDh8oL8KtB42d+oOYMKcZO1BxcOPIOpQ1/tm3JqxMEfBQmzzmt7HeLP0+P9C1Pr4c3Qh9tWq/CLhkIVr1RDc2vbkvfTaPDv/5q0BngnyufUdnT6ZQCqHgVLlwD+7qJAcCWnH1+xGeYaF2v3Fs0chOsjN2rnIm6V8KWVae4fISSEhmlpFqf6eIPu7m4ULDnXoMHiW4R2SU2WCm/KcICQ+6ZFYBIIXVqPO6Tt5gTHk2H7zeGAtEVl4S9A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=google.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9Fjh6Va9is1UKXphs4R/KE5/TgQpuAEqDeLTgySmbZw=; b=Fgtfv08w1OMLXdonW+6HhtK+YmUVi2lSS4VLNGSHmALfE55OYgvxudlo1Q4f7jySItgL6vXqvATpX3wvNhH+bA73roP8Ui+xg5eBRvUzuKu5FtyeInKKVflg2gMq+Y6VEqgy+KY4Rjqi95nxCUea+676mSRT9DrWr4CEEG8MLSziAma3drMxNQdsnhwKXsK4t3C30uSXU4j2ET6d3+IP2npt2w/LZXHrQWPcqygZ2hgs8hRzsy+FdqORKCs/GFOfSRLkMkUVOTCvCDqcpy/EUBF/ikpVvXoF8VcMnkEgj2h3VRxOx97dkEWwPdzGLcFyMH+koLLvp2/ECUsn8+QuFg== Received: from SJ0PR13CA0144.namprd13.prod.outlook.com (2603:10b6:a03:2c6::29) by MW4PR12MB7015.namprd12.prod.outlook.com (2603:10b6:303:218::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Wed, 3 Jun 2026 19:34:28 +0000 Received: from CO1PEPF000066E6.namprd05.prod.outlook.com (2603:10b6:a03:2c6:cafe::e5) by SJ0PR13CA0144.outlook.office365.com (2603:10b6:a03:2c6::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.7 via Frontend Transport; Wed, 3 Jun 2026 19:34:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by CO1PEPF000066E6.mail.protection.outlook.com (10.167.249.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Wed, 3 Jun 2026 19:34:24 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:34:07 -0700 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:34:07 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 3 Jun 2026 12:33:58 -0700 From: Mark Bloch To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jonathan Corbet , Shuah Khan , Jiri Pirko , Simon Horman , Sunil Goutham , Linu Cherian , Geetha sowjanya , hariprasad , Subbaraya Sundeep , Bharat Bhushan , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Mark Bloch , "Borislav Petkov (AMD)" , Andrew Morton , Randy Dunlap , "Peter Zijlstra (Intel)" , Thomas Gleixner , Petr Mladek , Tejun Heo , Vlastimil Babka , Feng Tang , Dave Hansen , Christian Brauner , Dapeng Mi , Kees Cook , Marco Elver , Eric Biggers , Li RongQing , "Paul E. McKenney" , "Ethan Nelson-Moore" , , , , Subject: [PATCH net-next V2 6/7] octeontx2-pf: Register devlink after SR-IOV state init Date: Wed, 3 Jun 2026 22:32:58 +0300 Message-ID: <20260603193259.3412464-7-mbloch@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260603193259.3412464-1-mbloch@nvidia.com> References: <20260603193259.3412464-1-mbloch@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000066E6:EE_|MW4PR12MB7015:EE_ X-MS-Office365-Filtering-Correlation-Id: aec7e565-1771-41d6-312b-08dec1a71e5f X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|82310400026|36860700016|18002099003|22082099003|6133799003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: aj5MfJdt7S7ffWEPi+2bAyFKJJ+JKCDKT3lmNTaudJZjdP+2XuhUSP8dWnaPB/+GODtfGEkmjun2Ykwx5Ika04Nk76A948BFRfkOSg+3WdcqVlz/sbFzcYIqMpk6B0f0+gYPZNbK08f1JxcnVf6zQzy6RinkbmWvuLdkAyQMCi/d5nUY3mzHeFietax3qCgQACNfLZykk6nQkpjRYHbYV9f6VMQRva/b4Jg77N9qbMUy1kYvTjz1gKTGjwJOg7oEkDIetZVWOfPIl7BoLQKGLu1DuOnbMR1HBng03AXZ6lDT3w40cd0aSNCja5zUVHiyG2aGWJfGQ8oThyIJmR+VcxWTLZQzIjm1mdD78J6tOIIVKq8WbMUoGk0y12ZPV/2twQZjfQdaQrLmBjApCR6dZy43uJLr0ZQm66RM8P3g+vvu0LlmfUvaFB+qELN95duYuwlDqKVhoN6Vpb0MugIsHRT+nRIbmOSIo42MDW7TVoMxzw6jseoo7kPFAuC18RQ5zZfMUU+ZhniRBIK04iKE4YYJCe2e9pIQDtGRKpxJ2DC+s3orWMtzjjDMOZSFbX+Ig2dpWtyaqTWWn8YigTOWmd6kk8XWgCmgcuH+BlDTg+4pZMHyGj+1jX2Xxypgybu0acjxA3rKNx5Opjkja1tpa6VUTEXfhg2Rn5TJNjPDgnXIQEQKc4uqLMpyH6AsINaNTieD3M0hJIFLKmLpqwaeoGJJ4TlLSsdRMLpQupwOv5E= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(82310400026)(36860700016)(18002099003)(22082099003)(6133799003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: pYvcMNaVP/MUO06CJGhrMlHikBRZfeMjxaOLvi3d7MoX2PYGsMqLahWar0SDDH81grOmCN73c2o5L3Jn+DezI82yy4Hv70athUPxyWiT3GJB3gFcJFr4xxyqX2tQmyKMEe/9GuUf1j99bNaRZljiY1m8BeU5Uk1QuK023oyt2I4NWyiFK/8wX/Mva9mdGVuPjqIAeNYe+AemnU3yLNkkmTfRoC5LJfm0B7YXSnRx66ZMjcevijzxTIVsb2Q/hpVKJ0c5u9M3l5FeoRSNWw/oHeLCADVFHmiWBi4arrhbHghuSXPiNtVU5HnAsdmX2j8dPpU6Y2c9u4L+PuBEgk8TpZwUF6EH/YN8iBfVS0+fWRe8X76ghC5uKCoPutRR7u84T1mGlMpGSh0c4EcFvp6XBDIsv7yiSNEsguyeoQTKw2+YII0eS6rjK5fGlGzyV/jD X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2026 19:34:24.5714 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: aec7e565-1771-41d6-312b-08dec1a71e5f X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000066E6.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7015 Content-Type: text/plain; charset="utf-8" A later patch makes devlink registration the point where devlink core may call eswitch_mode_set() to apply a boot-time default eswitch mode. Move octeontx2 PF devlink registration after PF SR-IOV configuration state is initialized, so representor creation has the state it needs. Add a separate unwind label so failures after devlink registration unregister devlink before cleaning up SR-IOV state. Signed-off-by: Mark Bloch --- .../ethernet/marvell/octeontx2/nic/otx2_pf.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c b/drivers= /net/ethernet/marvell/octeontx2/nic/otx2_pf.c index ee623476e5ff..9afe6cf0ea01 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c @@ -3278,14 +3278,14 @@ static int otx2_probe(struct pci_dev *pdev, const s= truct pci_device_id *id) if (err) goto err_mcam_flow_del; =20 - err =3D otx2_register_dl(pf); - if (err) - goto err_mcam_flow_del; - /* Initialize SR-IOV resources */ err =3D otx2_sriov_vfcfg_init(pf); if (err) - goto err_pf_sriov_init; + goto err_shutdown_tc; + + err =3D otx2_register_dl(pf); + if (err) + goto err_sriov_cleannup; =20 /* Enable link notifications */ otx2_cgx_config_linkevents(pf, true); @@ -3293,7 +3293,7 @@ static int otx2_probe(struct pci_dev *pdev, const str= uct pci_device_id *id) pf->af_xdp_zc_qidx =3D bitmap_zalloc(qcount, GFP_KERNEL); if (!pf->af_xdp_zc_qidx) { err =3D -ENOMEM; - goto err_sriov_cleannup; + goto err_dl_unregister; } =20 #ifdef CONFIG_DCB @@ -3310,10 +3310,11 @@ static int otx2_probe(struct pci_dev *pdev, const s= truct pci_device_id *id) err_free_zc_bmap: bitmap_free(pf->af_xdp_zc_qidx); #endif +err_dl_unregister: + otx2_unregister_dl(pf); err_sriov_cleannup: otx2_sriov_vfcfg_cleanup(pf); -err_pf_sriov_init: - otx2_unregister_dl(pf); +err_shutdown_tc: otx2_shutdown_tc(pf); err_mcam_flow_del: otx2_mcam_flow_del(pf); --=20 2.34.1 From nobody Mon Jun 8 09:48:39 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010002.outbound.protection.outlook.com [52.101.61.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 15B3948C3F6; Wed, 3 Jun 2026 19:34:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.2 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515287; cv=fail; b=W72x/fc3OboxIMqeg22k3L1rAn4NOZkoo3cO32nfTS/6BfTDuKwhaw+umsNA+GrasBl62Lsrs0SUKMqrNsfUpcZnQfRhceYS+PHxMn0xyPmSG8WYUXyHftwxelQbjZgRa2gKU2JGoyIJFrpfsdbiDIEr5wMmG1Evjtp/p0WlP68= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780515287; c=relaxed/simple; bh=l6Tzcf4oguMZQOQmjpFTjHZgXDoR9U4Bro4lWTlRNMg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=j9u00vhs+7c3RlJEMDcJoM5uxb+uYPLvW0TigL71+66NFaizglxIsZpR2oWzo4CFkLBvRwk96GHEhSloL6RsWXzEg7cOdXqoK4wvTMQaAyzMieFUG66gpPD7oLmMbn21qbazEF5HlFpz75PHf0UTCodsD7YMUe0EzDJoLWfapt0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=dIFShVEC; arc=fail smtp.client-ip=52.101.61.2 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="dIFShVEC" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=G+SsQlyxYw1rvn7TusavqCkCssOPy9pwkEkmYxVK1ubKsd/mxUrXtF3eLq+n8DhfzyfJ47Y1s83Hx7fVl9RC0ERHXWV3hdJVUQ7mJ/XFCt36sLLWuHCx3p/jpFulQZGVAnxJ8h/P6EO9zWoymCvur5mN1TIn3rdhd88wlWjUa3WD0o7kpOX9iLiYI0Kiaa8K0XiDW6zVWae1HPXjddDPHGjfGlGLnc8PCytERB8SBQxSyuBl7xPILerwtiL/iqENG6Emx4PYBLUs/jwLmv3nu4f8UKuPwrzQ+vT1mdo4w+tVpJ1ZkbL2lx7G+FzLWXlyUDnVQdF9umoksaRPYvr0Sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=rlZztyhe+geSeU07NP7nWjsOXebqDB+4JrLJLJMN9JY=; b=f12rCbqVp9p6+ULs/Njlg2WmlQArQhjEoZFbL21TsnwmtUq9yFF9cCjXgsRVDeYdLGBlOFxN5+rquikAcrq417fXMRsW2e3AF7VTEQzUXWuBujXp0vT20kU+JCVKFRPp7YalZEUCwFbAKyq2ySYr0FAJTRq+woETT6D6FhChDl8vIJzkdfQIi04+oP6DpDpGNzDdjjpCf5jzRtdmflAAWq+7kKO1TrKpaFgzTw3tJRBXHUttm1a1CWF/ePB3ZBoH+oBUnzorKe/AWKmUQZliFbJMeuJihrgVA0xVfxrY0pni0O1DSgbsGvO7nZS/zTGZAzc31ixDs3YmQFZeMiRUMA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=google.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rlZztyhe+geSeU07NP7nWjsOXebqDB+4JrLJLJMN9JY=; b=dIFShVECCqebMzvDCb3WDJGTv1NqAlC2tkoQ3Lrb/mmNy+hGo1Gg6O7gnkj3z3hxLfro0c7uwJuOoAieHMqPQLWIK3bSmYguQACqMmfl+NiC8k5I7VsDbfcUnTGtufb4KfVDJEp++1DYcuSs0ik45KN/brmQReUN/EXkCgvLlG/iNy0Kud4DGCQw9pCH6MSVMS1IpzWGf7kmbZOM6OsleojqeR0Yxr7VQzL98cdoMnbp4CAf3bU9yG7eoZCLcSBTueMxRbCgRB13WOnQC2lCaMNZHOKuhREbZHUQqdJIgLfUzjQQtok/5lKrZE/17wNJHz9prfdCtV2y80x8WllHSg== Received: from BN9PR03CA0921.namprd03.prod.outlook.com (2603:10b6:408:107::26) by CY5PR12MB6058.namprd12.prod.outlook.com (2603:10b6:930:2d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Wed, 3 Jun 2026 19:34:38 +0000 Received: from BN2PEPF0000449F.namprd02.prod.outlook.com (2603:10b6:408:107:cafe::6e) by BN9PR03CA0921.outlook.office365.com (2603:10b6:408:107::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.7 via Frontend Transport; Wed, 3 Jun 2026 19:34:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by BN2PEPF0000449F.mail.protection.outlook.com (10.167.243.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Wed, 3 Jun 2026 19:34:38 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:34:17 -0700 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 3 Jun 2026 12:34:16 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 3 Jun 2026 12:34:07 -0700 From: Mark Bloch To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jonathan Corbet , Shuah Khan , Jiri Pirko , Simon Horman , Sunil Goutham , Linu Cherian , Geetha sowjanya , hariprasad , Subbaraya Sundeep , Bharat Bhushan , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Mark Bloch , "Borislav Petkov (AMD)" , Andrew Morton , Randy Dunlap , "Peter Zijlstra (Intel)" , Thomas Gleixner , Petr Mladek , Tejun Heo , Vlastimil Babka , Feng Tang , Dave Hansen , Christian Brauner , Dapeng Mi , Kees Cook , Marco Elver , Eric Biggers , Li RongQing , "Paul E. McKenney" , "Ethan Nelson-Moore" , , , , Subject: [PATCH net-next V2 7/7] devlink: Add eswitch mode boot defaults Date: Wed, 3 Jun 2026 22:32:59 +0300 Message-ID: <20260603193259.3412464-8-mbloch@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260603193259.3412464-1-mbloch@nvidia.com> References: <20260603193259.3412464-1-mbloch@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF0000449F:EE_|CY5PR12MB6058:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ea46941-ed40-4e3d-5f9a-08dec1a726a8 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|1800799024|36860700016|3023799007|6133799003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: cC6U8Qc6H9/HVk6jzHGLXgfIgR3RHIapeYTtQNOjHxvTfGLIEGzK5+dE0RCkqMNkW36WPZMU1nK6tN1Uvqnyqze2nPHnXuGxrY/+ukh8dqid48A5VRZSxlCT6/cFhgAOnHgTwYkiYLZwpQiTPELCMmkp6ij1wuWE+sD9T9QNUSiXdJT83noDVWuDmtZhyMCuWtYTOmDTJeY2jsNjgXw4lKaKsdeayZB8OYjmxLePqwAAPxRIi5DJamrBzj6R302goqzHVyvTQCquYt1lSJmBuB/uDTvCySmmfQtXgDaYLQIvFNtduogxlkw1zg05XD3JD81MsMCuC/yNpcjnDX/wBfGirEepSFVirCFqdblrzCZtNpA6UM4itXLOwpzKfwwvE4mwZBUjKn3UzykNrC/jTLzXqbeUhK3g1MHwMHPGX0gcw4Ic5TSk7ML3V/y/W7UENxjM3CuNyfK5YjnBT0K7+5eB92IJqOG+TRH5Mu25Rk6VVUDklFH/FmJ4O7J/9WCLwOvXBBmxKIGzaK/mrLLbYvlYDtq7QrkTqT4SxZjTk9aHWKCxjMUMokNZ/P1L32jm8W1xLjQHebeZmwZ/lLiHNQwO+/lhMuv2yVggVeQBv6GLNruArrBl1j3xpAWmDWgNKdaGgj/By7OwcsI+dgsLg8H1jYrvNeESNKegM3onk/0W0GwRyMTPWM4XfopUAXvfyif05eSehPwkghOyjWOKVzApQgP2ca4pYQ0Lu1CP15g= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(1800799024)(36860700016)(3023799007)(6133799003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5Qu0sK7DOVcwvjouLV+pGiYX7keeNaBp64fGxCzKTiF741ZB5CQ/lCyDDDjDqgnYggHdtQ0WCpkzUXJ9ylgPIzFL4RGlvt8VE0u80A8WMEnXjbWHopj8aZM09gJEfvFYLCsOz7WnvGe/r0VjlR6myfYNmrHV+bTFonRd8DEtmGYBW2cKEfUcOVs01d/X7Oc1W+yhuXbk8HruDfyHRcmI1+b40k0Zg37G9pUrTtlPYuMIs2G3MIF0fW4W2MGFGtSS5k/Ecr770ATJl9V1ILWQ3Ku3GFnKsWZKavgrrpr1lomqCcIWGqsMOB1z84sxgsoHyJct83l/8OCrpAPPqMsbZQ3FFunl6WDhgrJByFoY4nF3TEzyxHq91zemf9mydn6O++4IKMM8kgKn/weMCThJ3UddjHEmuzVG13ALd8yVtyuGlMVQy5AWtaIJr5dLwcK+ X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2026 19:34:38.3797 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3ea46941-ed40-4e3d-5f9a-08dec1a726a8 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF0000449F.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6058 Content-Type: text/plain; charset="utf-8" Add devlink_eswitch_mode=3D command line support for setting a default eswitch mode during device initialization. The supported syntax selects either all devlink handles or one explicit comma-separated handle list: devlink_eswitch_mode=3D[*]: devlink_eswitch_mode=3D[[,...]]: where is one of legacy, switchdev or switchdev_inactive. All selected handles receive the same mode. Assigning different modes to different handle lists in the same parameter value is not supported. The default is applied through the existing eswitch_mode_set() devlink operation, matching the userspace devlink eswitch mode command. devlink core applies it when a matching devlink instance is registered and after a successful devlink reload that performed DRIVER_REINIT, so rebuilt device state returns to the requested boot default. Document the devlink_eswitch_mode=3D syntax and duplicate handle handling. Signed-off-by: Mark Bloch --- .../admin-guide/kernel-parameters.txt | 25 ++ .../networking/devlink/devlink-defaults.rst | 80 ++++++ Documentation/networking/devlink/index.rst | 1 + net/devlink/core.c | 261 ++++++++++++++++++ net/devlink/dev.c | 3 + net/devlink/devl_internal.h | 1 + 6 files changed, 371 insertions(+) create mode 100644 Documentation/networking/devlink/devlink-defaults.rst diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentatio= n/admin-guide/kernel-parameters.txt index 063c11ca33e5..7af9f2898d92 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -1264,6 +1264,31 @@ Kernel parameters dell_smm_hwmon.fan_max=3D [HW] Maximum configurable fan speed. =20 + devlink_eswitch_mode=3D + [NET] + Format: + []: + + : + * | [,...] + + : + / + + Configure default devlink eswitch mode for matching + devlink instances during device initialization. + + : + legacy | switchdev | switchdev_inactive + + Examples: + devlink_eswitch_mode=3D[*]:switchdev + devlink_eswitch_mode=3D[pci/0000:08:00.0]:switchdev + devlink_eswitch_mode=3D[pci/0000:08:00.0,pci/0000:09:00.1]:legacy + + See Documentation/networking/devlink/devlink-defaults.rst + for the full syntax. + dfltcc=3D [HW,S390] Format: { on | off | def_only | inf_only | always } on: s390 zlib hardware support for compression on diff --git a/Documentation/networking/devlink/devlink-defaults.rst b/Docume= ntation/networking/devlink/devlink-defaults.rst new file mode 100644 index 000000000000..b554e75eeeea --- /dev/null +++ b/Documentation/networking/devlink/devlink-defaults.rst @@ -0,0 +1,80 @@ +.. SPDX-License-Identifier: GPL-2.0 + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D +Devlink Eswitch Mode Defaults +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D + +Devlink eswitch mode defaults allow the eswitch mode to be provided on the +kernel command line and applied to matching devlink instances during device +initialization. + +The devlink device is selected by its devlink handle. For PCI devices this= is +the same handle shown by ``devlink dev show``, for example +``pci/0000:08:00.0``. + +Kernel command line syntax +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D + +Defaults are specified with the ``devlink_eswitch_mode=3D`` kernel command= line +parameter. + +The general syntax is:: + + devlink_eswitch_mode=3D[]: + +```` is either ``*`` or one or more devlink handles:: + + * | /[,/...] + +``*`` applies the mode to every devlink instance. All handles in the same +``[]`` list receive the same eswitch mode. + +```` is one of ``legacy``, ``switchdev`` or ``switchdev_inactive``. + +Syntax rules +------------ + +The following syntax rules apply: + +* Specify the default in one ``devlink_eswitch_mode=3D`` parameter. Repeat= ed + ``devlink_eswitch_mode=3D`` parameters are not accumulated. +* The ``devlink_eswitch_mode=3D`` value is limited by the kernel command l= ine + size. +* Whitespace is not allowed within the parameter value. +* ```` must be either ``*`` or a handle list. ``*`` cannot be + combined with explicit handles. +* ```` and ```` must not be empty. +* ```` must not contain ``:``. +* ```` may contain ``:``. This allows PCI names such as + ``0000:08:00.0``. +* Handles must not contain whitespace, ``[``, ``]``, ``*`` or more than one + ``/``. +* A comma inside ``[]`` separates handles. +* Comma-separated default groups are not supported. +* Duplicate handles are rejected and the devlink eswitch mode default is + ignored. + +The eswitch mode default corresponds to the userspace command:: + + devlink dev eswitch set mode + + +Examples +=3D=3D=3D=3D=3D=3D=3D=3D + +Set all devlink instances to switchdev mode:: + + devlink_eswitch_mode=3D[*]:switchdev + +Set one PCI devlink instance to switchdev mode:: + + devlink_eswitch_mode=3D[pci/0000:08:00.0]:switchdev + +Set two PCI devlink instances to legacy mode:: + + devlink_eswitch_mode=3D[pci/0000:08:00.0,pci/0000:09:00.1]:legacy + +The following is invalid because comma-separated default groups are not +supported:: + + devlink_eswitch_mode=3D[pci/0000:08:00.0]:switchdev,[pci/0000:09:00.0]:s= witchdev_inactive diff --git a/Documentation/networking/devlink/index.rst b/Documentation/net= working/devlink/index.rst index f7ba7dcf477d..0d27a7008b14 100644 --- a/Documentation/networking/devlink/index.rst +++ b/Documentation/networking/devlink/index.rst @@ -56,6 +56,7 @@ general. :maxdepth: 1 =20 devlink-dpipe + devlink-defaults devlink-eswitch-attr devlink-flash devlink-health diff --git a/net/devlink/core.c b/net/devlink/core.c index eeb6a71f5f56..3e1b26459894 100644 --- a/net/devlink/core.c +++ b/net/devlink/core.c @@ -4,6 +4,10 @@ * Copyright (c) 2016 Jiri Pirko */ =20 +#include +#include +#include +#include #include #define CREATE_TRACE_POINTS #include @@ -16,6 +20,234 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(devlink_trap_report); =20 DEFINE_XARRAY_FLAGS(devlinks, XA_FLAGS_ALLOC); =20 +static char *devlink_default_esw_mode_param; +static bool devlink_default_esw_mode_match_all; +static enum devlink_eswitch_mode devlink_default_esw_mode; +static LIST_HEAD(devlink_default_esw_mode_nodes); + +struct devlink_default_esw_mode_node { + struct list_head list; + char *bus_name; + char *dev_name; +}; + +static int __init +devlink_default_esw_mode_to_value(const char *str, + enum devlink_eswitch_mode *mode) +{ + if (!strcmp(str, "legacy")) { + *mode =3D DEVLINK_ESWITCH_MODE_LEGACY; + return 0; + } + if (!strcmp(str, "switchdev")) { + *mode =3D DEVLINK_ESWITCH_MODE_SWITCHDEV; + return 0; + } + if (!strcmp(str, "switchdev_inactive")) { + *mode =3D DEVLINK_ESWITCH_MODE_SWITCHDEV_INACTIVE; + return 0; + } + + return -EINVAL; +} + +static int __init +devlink_default_esw_mode_handle_parse(char *handle, char **bus_name, + char **dev_name) +{ + char *slash; + char *p; + + if (!handle || !*handle) + return -EINVAL; + + for (p =3D handle; *p; p++) { + if (*p =3D=3D '[' || *p =3D=3D ']' || *p =3D=3D '*') + return -EINVAL; + } + + slash =3D strchr(handle, '/'); + if (!slash || slash =3D=3D handle || !slash[1]) + return -EINVAL; + if (strchr(slash + 1, '/')) + return -EINVAL; + + *slash =3D '\0'; + if (strchr(handle, ':')) + return -EINVAL; + + *bus_name =3D handle; + *dev_name =3D slash + 1; + return 0; +} + +static struct devlink_default_esw_mode_node * +devlink_default_esw_mode_node_find(const char *bus_name, const char *dev_n= ame) +{ + struct devlink_default_esw_mode_node *node; + + list_for_each_entry(node, &devlink_default_esw_mode_nodes, list) { + if (!strcmp(node->bus_name, bus_name) && + !strcmp(node->dev_name, dev_name)) + return node; + } + + return NULL; +} + +static int __init +devlink_default_esw_mode_node_add(const char *bus_name, const char *dev_na= me) +{ + struct devlink_default_esw_mode_node *node; + + if (devlink_default_esw_mode_node_find(bus_name, dev_name)) + return -EEXIST; + + node =3D kzalloc_obj(*node); + if (!node) + return -ENOMEM; + + INIT_LIST_HEAD(&node->list); + node->bus_name =3D kstrdup(bus_name, GFP_KERNEL); + node->dev_name =3D kstrdup(dev_name, GFP_KERNEL); + if (!node->bus_name || !node->dev_name) { + kfree(node->bus_name); + kfree(node->dev_name); + kfree(node); + return -ENOMEM; + } + + list_add_tail(&node->list, &devlink_default_esw_mode_nodes); + return 0; +} + +static int __init devlink_default_esw_mode_handles_parse(char *handles) +{ + char *handle; + int err; + + if (!strcmp(handles, "*")) { + devlink_default_esw_mode_match_all =3D true; + return 0; + } + + while ((handle =3D strsep(&handles, ",")) !=3D NULL) { + char *bus_name; + char *dev_name; + + err =3D devlink_default_esw_mode_handle_parse(handle, &bus_name, + &dev_name); + if (err) + return err; + + err =3D devlink_default_esw_mode_node_add(bus_name, dev_name); + if (err) + return err; + } + + return 0; +} + +static void __init +devlink_default_esw_mode_node_free(struct devlink_default_esw_mode_node *n= ode) +{ + kfree(node->bus_name); + kfree(node->dev_name); + kfree(node); +} + +static void __init devlink_default_esw_mode_nodes_clear(void) +{ + struct devlink_default_esw_mode_node *node; + struct devlink_default_esw_mode_node *node_tmp; + + list_for_each_entry_safe(node, node_tmp, + &devlink_default_esw_mode_nodes, list) { + list_del(&node->list); + devlink_default_esw_mode_node_free(node); + } + + devlink_default_esw_mode_match_all =3D false; +} + +static int __init devlink_default_esw_mode_parse(char *str) +{ + char *handles_end; + char *handles; + char *mode; + enum devlink_eswitch_mode esw_mode; + int err; + + if (!str || *str !=3D '[') + return -EINVAL; + + handles =3D str + 1; + handles_end =3D strchr(handles, ']'); + if (!handles_end || handles_end[1] !=3D ':' || !handles_end[2]) + return -EINVAL; + + *handles_end =3D '\0'; + mode =3D handles_end + 2; + if (!*handles) + return -EINVAL; + + err =3D devlink_default_esw_mode_to_value(mode, &esw_mode); + if (err) + return err; + + err =3D devlink_default_esw_mode_handles_parse(handles); + if (err) + devlink_default_esw_mode_nodes_clear(); + else + devlink_default_esw_mode =3D esw_mode; + + return err; +} + +static bool devlink_default_esw_mode_match(struct devlink *devlink) +{ + const char *bus_name =3D devlink_bus_name(devlink); + const char *dev_name =3D devlink_dev_name(devlink); + struct devlink_default_esw_mode_node *node; + + if (devlink_default_esw_mode_match_all) + return true; + + node =3D devlink_default_esw_mode_node_find(bus_name, dev_name); + return !!node; +} + +void devlink_apply_default_esw_mode(struct devlink *devlink) +{ + const struct devlink_ops *ops =3D devlink->ops; + int err; + + devl_assert_locked(devlink); + + if (!devlink_default_esw_mode_match(devlink)) + return; + + if (!ops->eswitch_mode_set) { + if (!devlink_default_esw_mode_match_all) + devl_warn(devlink, + "devlink_eswitch_mode=3D selected this device but eswitch mode setti= ng is not supported\n"); + return; + } + + err =3D ops->eswitch_mode_set(devlink, devlink_default_esw_mode, NULL); + if (err) + devl_warn(devlink, + "Couldn't apply default eswitch mode, err %d\n", + err); +} + +static int __init devlink_default_esw_mode_setup(char *str) +{ + devlink_default_esw_mode_param =3D str; + return 1; +} +__setup("devlink_eswitch_mode=3D", devlink_default_esw_mode_setup); + static struct devlink *devlinks_xa_get(unsigned long index) { struct devlink *devlink; @@ -391,6 +623,7 @@ int devl_register(struct devlink *devlink) xa_set_mark(&devlinks, devlink->index, DEVLINK_REGISTERED); devlink_notify_register(devlink); devlink_rel_nested_in_notify(devlink); + devlink_apply_default_esw_mode(devlink); =20 return 0; } @@ -578,6 +811,31 @@ static int __init devlink_init(void) { int err; =20 + if (devlink_default_esw_mode_param) { + char *def; + + def =3D kstrdup(devlink_default_esw_mode_param, GFP_KERNEL); + if (!def) { + devlink_default_esw_mode_param =3D NULL; + pr_warn("devlink: devlink_eswitch_mode parameter ignored, failed to all= ocate memory\n"); + } else { + err =3D devlink_default_esw_mode_parse(def); + kfree(def); + if (err =3D=3D -EEXIST) { + devlink_default_esw_mode_param =3D NULL; + pr_warn("devlink: duplicate eswitch mode handles ignored\n"); + } else if (err =3D=3D -EINVAL) { + devlink_default_esw_mode_param =3D NULL; + pr_warn("devlink: invalid devlink_eswitch_mode parameter ignored\n"); + } else if (err =3D=3D -ENOMEM) { + devlink_default_esw_mode_param =3D NULL; + pr_warn("devlink: devlink_eswitch_mode parameter ignored, failed to al= locate memory\n"); + } else if (err) { + goto out; + } + } + } + err =3D register_pernet_subsys(&devlink_pernet_ops); if (err) goto out; @@ -593,7 +851,10 @@ static int __init devlink_init(void) out_unreg_pernet_subsys: unregister_pernet_subsys(&devlink_pernet_ops); out: + if (err) + devlink_default_esw_mode_nodes_clear(); WARN_ON(err); + return err; } =20 diff --git a/net/devlink/dev.c b/net/devlink/dev.c index 57b2b8f03543..0b4a831465e8 100644 --- a/net/devlink/dev.c +++ b/net/devlink/dev.c @@ -478,6 +478,9 @@ int devlink_reload(struct devlink *devlink, struct net = *dest_net, return err; =20 WARN_ON(!(*actions_performed & BIT(action))); + if (*actions_performed & BIT(DEVLINK_RELOAD_ACTION_DRIVER_REINIT)) + devlink_apply_default_esw_mode(devlink); + /* Catch driver on updating the remote action within devlink reload */ WARN_ON(memcmp(remote_reload_stats, devlink->stats.remote_reload_stats, sizeof(remote_reload_stats))); diff --git a/net/devlink/devl_internal.h b/net/devlink/devl_internal.h index e4e48ee2da5a..12557b65248d 100644 --- a/net/devlink/devl_internal.h +++ b/net/devlink/devl_internal.h @@ -71,6 +71,7 @@ extern struct genl_family devlink_nl_family; struct devlink *__devlink_alloc(const struct devlink_ops *ops, size_t priv= _size, struct net *net, struct device *dev, const struct device_driver *dev_driver); +void devlink_apply_default_esw_mode(struct devlink *devlink); =20 #define devl_warn(devlink, format, args...) \ do { \ --=20 2.34.1