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 9855A45A68; Fri, 11 Oct 2024 11:34:51 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 79A3640652; Fri, 11 Oct 2024 11:34:43 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2085.outbound.protection.outlook.com [40.107.94.85]) by mails.dpdk.org (Postfix) with ESMTP id 88A7240648 for ; Fri, 11 Oct 2024 11:34:41 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BK1IXwyd48+VcXN4Nl7ZVhpATx2X5I20rZh4/NnB3SZSRAdODgsXofpZy6bVN85ClQAZJv+9ZLG2P0Dkm2Ujk7Z89dnjL16Cw/FqDh8vrkK4eo4/piFKrmrJzHd4iV9JDwm9OIBxH81gL8QevzN81OeORKatigfQhB32uIv6MaPZVu9w3Vf2XLKzxeMmExWglJNvAyWe9ig5vK9eKs3fEDPtDzVToOwBteSTsTaXgKwN3t6ftRvdHyYdyyt7RiTNfxBaWlnTAxopb3SwKtsAvqS0PPgK8s3PN0qu4yd1+eFYf1dn3vxBd6YNK1P82oh8qPRhGUFqMbTIo1CljlvR6A== 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=YtzJScbJVbmqhWCLqC2UZWu7CSpzU/1nJ9U1ibOv2aplGwn1YjB+6rFwQF8e/h8asczq9dgIHrB9NuIRI8ptM+49AamV93x5pq7Ii4uYKxeaC9H+LSF0cDWQMvQIcDFYFLbdigQ4w1VvtsVLLm9/kWz6UjlstCOmAYR8pmvMFIiS66vwMeqWuT9i4JC/MrlWh3/YpnZleAQgYHXnD6jXayxaIX/EQrGbU+qgeaUNxlesMRiEvGw2raAIbyBeiHegdP/BeQcf6jvqqzVzK1Rf4DipRwfJiQ1DDiDb0Cl90fK3dFAbm09HVE9IWy6pn5PhXwnTNkhrFUHNyyQ4DpVPmw== 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=NlZVZbjFM0vbhrxCDj07thfhZFLTDfbgcDx6PZpP+t1qJnjG8WO1vhTnHVszKSHQxHo8Nnvo5/7Mz691cjEh1ETAcymA8IK6Ltx8sf/qm05yW8rTGd25BAavnhLOe/7eOOmvuFkM1xitADMjfqi8BxS57Qt42NyBP1fZNILi2HlrX5430MtuM2akvu38RxxgyBLzHOkVime7VfnyClUucs56DwhQym+qfcYcTsQboHIHHxEqIj7EouYHTAMStQcxx7ZyYKIXTEZdiEeipuM5U6I8++tHlNuUyP2TdWQamIfNWys3p0liGs8Gwoie5BDg8liA/wQyZlwl81vMAa2XeQ== Received: from SJ0PR13CA0055.namprd13.prod.outlook.com (2603:10b6:a03:2c2::30) by CH2PR12MB4151.namprd12.prod.outlook.com (2603:10b6:610:78::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.21; Fri, 11 Oct 2024 09:34:37 +0000 Received: from CO1PEPF000042A7.namprd03.prod.outlook.com (2603:10b6:a03:2c2:cafe::3c) by SJ0PR13CA0055.outlook.office365.com (2603:10b6:a03:2c2::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.16 via Frontend Transport; Fri, 11 Oct 2024 09:34:37 +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 CO1PEPF000042A7.mail.protection.outlook.com (10.167.243.36) 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:34:36 +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:34:24 -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:34:23 -0700 From: Dariusz Sosnowski To: Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko CC: , Konstantin Ananyev Subject: [PATCH v2 3/4] ethdev: restore config only when requested Date: Fri, 11 Oct 2024 11:33:50 +0200 Message-ID: <20241011093351.187191-4-dsosnowski@nvidia.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241011093351.187191-1-dsosnowski@nvidia.com> References: <20241011092103.181145-1-dsosnowski@nvidia.com> <20241011093351.187191-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: CO1PEPF000042A7:EE_|CH2PR12MB4151:EE_ X-MS-Office365-Filtering-Correlation-Id: f6f7bb9b-7937-47e2-6f78-08dce9d7ec38 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|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?c39AlY5LKUYbFBNffL9iRm5urMQ0hQmqyZvEBhgrt6Y4HH1vPzTfuXC9Xkvd?= =?us-ascii?Q?6LFUxt220EFyLiiD2Y4lPt/l29QtIyUONcA+rORjH5DNS5Q9n9VG3eXhakq/?= =?us-ascii?Q?fHbhYwYfpFkNCgzX/ZcLTk0wd7xdpH3TsPqWHadxIBKxIxd0fd673zp+YZkX?= =?us-ascii?Q?UScbxGuUjBgTfeqDwgZrMHkXAIo5d+ZFkcGUY982drMinj4xz6M5ghcutHGa?= =?us-ascii?Q?T04K2yIOSaDTv+t6CRjQXzoWl1ygOKU+PqQXB1YUYUx/4ZcrKkIFw7AwLnp+?= =?us-ascii?Q?UZ326gf9EEbnOkbTeJ4cx8sK0nIrDHFusYyWL+PU/I88uBkECMbdD+NGGP9Z?= =?us-ascii?Q?7v4t58cgrziN9W0bIJWJn5Nwl8XQinvNjOE0IDgyAi4QBOstGa+FSv8eO1dS?= =?us-ascii?Q?38QSiko/y0yhQ/huxQG+awTu8Zybd473ipo/RXx+KGiRMkMDarMmNM19aftO?= =?us-ascii?Q?bcxiRgtzfzK4AJfD72RCfvmj86qBvL2qA8yq1YAaFxfxY/gttNv3caOG2iKQ?= =?us-ascii?Q?t5vEAKcR/IQpB0G3uctXDZTFX558hA6gXBG/k4oC02V4mC+uHj6HAHreMpEL?= =?us-ascii?Q?VioUKCwBMsYbmq0RHSlkY7qdbnSQfmCNdLXrYJ0JdDPYETzaHNHt1ziil6Uh?= =?us-ascii?Q?u72ECPA/Gwr6+f83z9dEK3m4RM5m5XDEu4DHzqb+QgsDqpf8v3Wmc8Edq1Xc?= =?us-ascii?Q?RUAG1ssHAWphjRBcoy7qkW0Me9lEf5nvPPnR0JkHZPii50RFVdKWCQkjSdDm?= =?us-ascii?Q?DOOjJvStAacFlIKBbiSPQ8MvR7tXNkj+NOJt6ZxBqCV3lUnsa75efX6ODa9M?= =?us-ascii?Q?i6gJDwbPBweN7BPUa72CZlQIA3S+nzmQBIQH59d0yh8CE/OTxFfhtaA6EELa?= =?us-ascii?Q?3/mxFpmiH1eL92+CdV26v1MdxRBhrsDg+ufUlpnj9Uz55Qa7991PNdVVVBtv?= =?us-ascii?Q?c7yc5HY1R8FOo8zXShi1poG0TEKFsK2hKjC9Jtu+Y6domDeLv0Wv19kuyjv3?= =?us-ascii?Q?6+ZMJUqe46uY0IITUj6oKa/ZWznnLGLdgpZH2Icl7o2TqsjVjNinIf0yNeT2?= =?us-ascii?Q?WJOKMulUBLzqfPHV+Hy/aY5w+j5gT+WOwkIs4vYBflC1ymtsYCAER9nrgf0S?= =?us-ascii?Q?G8mX41nxPOrakTEzVZXKTTPAhtDISghq8GKJqW7G4J+D7D2X8WV2XNbmINQu?= =?us-ascii?Q?Fh2yoUtaIvHL/Cb0DlLE5MYxJOFfcbf4cHpSfUfM1QH5Ttpkn6halZo8iIJT?= =?us-ascii?Q?/9kMyGskJqHZJAlrHlPwdPlJBpNuoNTWe/7Cp1jM9F34S753h8lc2cHW7tZZ?= =?us-ascii?Q?QVwfvygE1bT7UKoQn+RavVhnunPKb01IkNbk0q9s4Na94Gd29Jw3M4Todw7n?= =?us-ascii?Q?GLM1mAR7f2wMeUCULkIyrEFTt/na?= 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)(82310400026)(376014)(36860700013)(1800799024); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2024 09:34:36.8723 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f6f7bb9b-7937-47e2-6f78-08dce9d7ec38 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: CO1PEPF000042A7.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4151 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