From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 20C0845B12; Fri, 11 Oct 2024 11:22:02 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 75C834065F; Fri, 11 Oct 2024 11:21:48 +0200 (CEST) Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2075.outbound.protection.outlook.com [40.107.95.75]) by mails.dpdk.org (Postfix) with ESMTP id 35F23402ED for ; Fri, 11 Oct 2024 11:21:45 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bZRn8DF6QIslMHLjxcwp9+iYgSzRLYSKgh6Zp+ML0ijuNIdI0KIOn5+WQJh3hUmizfBWXfWgwqfdQHXGMuH7xwue4El2G0a5yVLcrxPrIhL0Qj8ogkTUpUvvvC0otdMNoCDwYMwKo/Rcm/w1xw/6OfzJkp8afBLgB1MTOBXmhx2qWLCHnBAKRYaUJ81OJmZsv3icxUiJVzF6+BGjSxuW0GJlSeHH5VM7d/iapX1llTR7odZYaJI654oN+DxSBNaV7jmVQTu4YCnGpD5kVSsDRtu9+zEFfUU/bqFJmWKtmLSvGMFUBJTplzEbexxPA0yOKqcnzxaUuCZTW4cAum/QLQ== 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=iKgcTn2khXxpFU7OJP0urFw8uZZ5VXaQN//RYkydOw8=; b=E7UDYKQN8OtkmGye7IkvEwk5NNELOPRdVtjM+7HLPFBO+bZa6NSo3UZpjGcgSjHXfnLv8KGDgyWIY1os5tNSF8EHzZuvE2NDJsbi88Eg/D1gEL6oDSSIhzpjgzUxkMVXZ5cG8MxLlw7ypP34OkOgRYyotrAcwEzHCDw2bZqvxG228ewcpy9Zx4L2+tSf/9W3mTdHb1e6crY74lTCHO0z+jrW64J0nSJdNF7PMEqJ8vk3lnejwvmorpSpS7HkDc14SuPVtsPgUsuIFKBY7iv1HqIm1VC5/AKAeHvADUjV2GHoAfY2Zg73I9UmclP+eXocvxniWH/MP+Il57Bf6aILPA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=monjalon.net 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=iKgcTn2khXxpFU7OJP0urFw8uZZ5VXaQN//RYkydOw8=; b=Gda4UjSrtrShDdYEEPuGsInDNf/olnqblfv1hPdpX4P1vrAkMJPv6jIlZmkJQF2HlhotSGPvmySlVyrxakJ46dHoisbrAOtdu8/KLjKTYiM8x9q7f21NIYVOtrSN8vG0dB3Q5eC3P480nvC5id3LNLfYNwMOub8vturksPKJRqvsBa3K6IqOfFz/FIQMn/49gN/SkJVLaX0SfmvyA87nVq3xNTnGSrQJ3XSwdvDufHhZPjecaA4JNp1nNHYmdhfbKyYQdGNspQnqwNmZk708ICx+ZdA8Y6lOlrjEdfO/zrcDppgqGZN8hs9Djq6WcGTU8a5vZfVbXJghNC2H3hyCoA== Received: from SA0PR11CA0023.namprd11.prod.outlook.com (2603:10b6:806:d3::28) by DS0PR12MB9274.namprd12.prod.outlook.com (2603:10b6:8:1a9::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.18; Fri, 11 Oct 2024 09:21:42 +0000 Received: from SA2PEPF00003F66.namprd04.prod.outlook.com (2603:10b6:806:d3:cafe::8b) by SA0PR11CA0023.outlook.office365.com (2603:10b6:806:d3::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.20 via Frontend Transport; Fri, 11 Oct 2024 09:21:41 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by SA2PEPF00003F66.mail.protection.outlook.com (10.167.248.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.13 via Frontend Transport; Fri, 11 Oct 2024 09:21:41 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Fri, 11 Oct 2024 02:21:26 -0700 Received: from nvidia.com (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Fri, 11 Oct 2024 02:21:25 -0700 From: Dariusz Sosnowski To: Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko CC: , Konstantin Ananyev Subject: [PATCH 3/4] ethdev: restore config only when requested Date: Fri, 11 Oct 2024 11:21:02 +0200 Message-ID: <20241011092103.181145-4-dsosnowski@nvidia.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241011092103.181145-1-dsosnowski@nvidia.com> References: <20241011092103.181145-1-dsosnowski@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF00003F66:EE_|DS0PR12MB9274:EE_ X-MS-Office365-Filtering-Correlation-Id: b865d567-b1c7-49b3-ec5c-08dce9d61e29 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|36860700013|1800799024|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?8OpWdmkTPHXRKBqvjD7BBpog/vBiElBly+S+Wx6xmKc6F1tG64n78XHvNtcl?= =?us-ascii?Q?IKwuckqWmMz4YjytE0BW3J6xe/fTh0IVsOmsaqQh2072Qk9Pxl4vbTtn1ZT2?= =?us-ascii?Q?4OPnyXhGW3aBbAxEvKWv1LOMSJQBUyO/R18PMrtBJZjWFChD4uN75afjJKAq?= =?us-ascii?Q?DWwICurNp2as95H/7QS3CalKJI1KkRD/K6IrH/JFs91KAhul3gZ4BjrsDTNb?= =?us-ascii?Q?Qjs/jVMEideR+aEqNmKAW2xRXp5aTIgDzyCni43odW1W/kf6akZYXwt6i4ry?= =?us-ascii?Q?MHi0XZ6ipKParRyzyIN7Uej7NwRa7TadTvCSmgc64ZVZ1T+kw6v3AicDdYlA?= =?us-ascii?Q?1TaAHELEF5bPcsKusONRnsAtv2DvVNHpvoBoI4GfH03Lnncc+8e5gfFbgA5N?= =?us-ascii?Q?SaohRQq2Vtz/20gGMbPoliWZD9xkQ30HQ3/LRMqpZ1+YI+MZQStGv0LO7OaT?= =?us-ascii?Q?SDwq7ER9XG3GGtPcG8IttzWYUP79vZzkKDS/hm+B8sJGdOiit2eZ27NZO8BA?= =?us-ascii?Q?6MNcr1RBQthLWwVxnp1AJzmjw7kgiB092+D4ASQp9U2N0fkieEg8uPTNIHWr?= =?us-ascii?Q?/9YjQEwL7LZHtPBgEDO8/5PHy5yD8sbBDya3RvFIUTD7DcNNa+wQXo3C6atG?= =?us-ascii?Q?mMMtrxS4SNMM8Db5L0kxFpOJtmiIDXSfUF8guXYuGmflgAOKOnji8xyqgzsn?= =?us-ascii?Q?16XWYEhYjd6SC8q03B2brZgdOjNfoX4iN9lOT7JmJspWm5cZ4bbtiMkKNyBC?= =?us-ascii?Q?sp/NT3U8zwXFPECgmUhFpTCxn/JkjvKs0xr/okqAgZbQgoUC1OqUwFMPVrPl?= =?us-ascii?Q?0BL3EJm7tdv3o/As6tepB4kahY+8RqDm3bdsa+/IOpisiqCBZX7KEyiq4g8k?= =?us-ascii?Q?Od4zqTtV5MtR/ZWWD2hLS3f9CVnV1PlaCZp7+Uranige6xbzWhgLrmfkPI/Z?= =?us-ascii?Q?CX2iQMwhqnkXhgPcOaW2XwNvbjkJTPdrEgKIrBHrlV3ji6KTQdKd5AB9QMFY?= =?us-ascii?Q?37CKF8BKbETh7zDAb0017vONia4WiPAvTVovzR3MFa6fXmmoEyfz6FolaSrt?= =?us-ascii?Q?MdL5pR7MkZ80pa8feZWnBIZvV77foApF12sFRIB8EBp8THXeyAJhpsSpJjE3?= =?us-ascii?Q?L+vSKXgHfBp8gq4ldVKqvB+WGtOc7KSSjWZVCPD9a5X7wNHahr1Yk2qI4KFA?= =?us-ascii?Q?uyqqJPinvb6nuWqGfcu7iyvJjwrPA7rpDKobXX7DS8/aQ8jiPMXvyu6R560I?= =?us-ascii?Q?L7tJX3MuinbPnWU0z9BrSSYxYQ8nuY4ek+2bTPvfCZzGe3tvLtjzhBOdqTaA?= =?us-ascii?Q?IET6iOAgd7aJQWvTHkStwzPAubi9T6RT3DJRSRof6U5kmKOqha4bIcnIqyDw?= =?us-ascii?Q?Lzj7MomoYFtji1/38oTUz6UyIaCn?= X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2024 09:21:41.6698 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b865d567-b1c7-49b3-ec5c-08dce9d61e29 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF00003F66.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9274 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Use get_restore_flags() internal API introduced in previous commits in rte_eth_dev_start(), to restore only the configuration requested by the driver. Signed-off-by: Dariusz Sosnowski --- lib/ethdev/rte_ethdev.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index 362a1883f0..9e82556374 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -1719,20 +1719,27 @@ eth_dev_allmulticast_restore(struct rte_eth_dev *dev, uint16_t port_id) static int eth_dev_config_restore(struct rte_eth_dev *dev, - struct rte_eth_dev_info *dev_info, uint16_t port_id) + struct rte_eth_dev_info *dev_info, + uint32_t restore_flags, + uint16_t port_id) { int ret; - if (!(*dev_info->dev_flags & RTE_ETH_DEV_NOLIVE_MAC_ADDR)) + if (!(*dev_info->dev_flags & RTE_ETH_DEV_NOLIVE_MAC_ADDR) && + (restore_flags & RTE_ETH_RESTORE_MAC_ADDR)) eth_dev_mac_restore(dev, dev_info); - ret = eth_dev_promiscuous_restore(dev, port_id); - if (ret != 0) - return ret; + if (restore_flags & RTE_ETH_RESTORE_PROMISC) { + ret = eth_dev_promiscuous_restore(dev, port_id); + if (ret != 0) + return ret; + } - ret = eth_dev_allmulticast_restore(dev, port_id); - if (ret != 0) - return ret; + if (restore_flags & RTE_ETH_RESTORE_ALLMULTI) { + ret = eth_dev_allmulticast_restore(dev, port_id); + if (ret != 0) + return ret; + } return 0; } @@ -1742,6 +1749,7 @@ rte_eth_dev_start(uint16_t port_id) { struct rte_eth_dev *dev; struct rte_eth_dev_info dev_info; + uint32_t restore_flags; int diag; int ret, ret_stop; @@ -1769,8 +1777,11 @@ rte_eth_dev_start(uint16_t port_id) if (ret != 0) return ret; + rte_eth_get_restore_flags(dev, RTE_ETH_START, &restore_flags); + /* Lets restore MAC now if device does not support live change */ - if (*dev_info.dev_flags & RTE_ETH_DEV_NOLIVE_MAC_ADDR) + if ((*dev_info.dev_flags & RTE_ETH_DEV_NOLIVE_MAC_ADDR) && + (restore_flags & RTE_ETH_RESTORE_MAC_ADDR)) eth_dev_mac_restore(dev, &dev_info); diag = (*dev->dev_ops->dev_start)(dev); @@ -1779,7 +1790,7 @@ rte_eth_dev_start(uint16_t port_id) else return eth_err(port_id, diag); - ret = eth_dev_config_restore(dev, &dev_info, port_id); + ret = eth_dev_config_restore(dev, &dev_info, restore_flags, port_id); if (ret != 0) { RTE_ETHDEV_LOG_LINE(ERR, "Error during restoring configuration for device (port %u): %s", -- 2.39.5