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 CF6B3423EE; Mon, 16 Jan 2023 11:53:59 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3FC5942BB1; Mon, 16 Jan 2023 11:53:59 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 1626940042; Mon, 16 Jan 2023 11:53:56 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1673866437; x=1705402437; h=from:to:cc:subject:date:message-id; bh=x+6bVeWd3BMETGUA0erCWrmMaGZgdZGo8uLc6R2CwoM=; b=H/FxNNItKFma0af0Z9M31ef6de370GgQwzS7KFAfVrTF+XXr4mFs2dBD IccgL+XXOLxlARAGjbxqEO/H9vrleN4qlQbcmUt+AaPEMCbWOsCpvfhl8 0NN8GfiNiJhviMdSABihuYTBvHroL2WsHzY8XvpFwsnjmP/sBXT9IJeW0 fL6tjhprQepbDeax+dU1f8fp2FOyQdPz75NIJ56Qr854KP/AGCERGCjBT cVcYt7tdbmMZyyEnFTXayMnvQuRX4A5CSAp7cIOISfjSWQEDC/W6PyTl8 yZpNsUFmyeE0XuphKrBwlzbOuqsiKuEskDToRrROzWELw2UJtq3BAHgCu Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10591"; a="322132912" X-IronPort-AV: E=Sophos;i="5.97,220,1669104000"; d="scan'208";a="322132912" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jan 2023 02:53:55 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10591"; a="987757406" X-IronPort-AV: E=Sophos;i="5.97,220,1669104000"; d="scan'208";a="987757406" Received: from unknown (HELO npg-dpdk-simeisu-cvl-119d218.sh.intel.com) ([10.67.119.208]) by fmsmga005.fm.intel.com with ESMTP; 16 Jan 2023 02:53:53 -0800 From: Simei Su To: beilei.xing@intel.com, yuying.zhang@intel.com, david.marchand@redhat.com Cc: dev@dpdk.org, qi.z.zhang@intel.com, qiming.yang@intel.com, Simei Su , stable@dpdk.org Subject: [PATCH] net/i40e: rework maximum frame size configuration Date: Mon, 16 Jan 2023 18:53:18 +0800 Message-Id: <20230116105318.19412-1-simei.su@intel.com> X-Mailer: git-send-email 2.9.5 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 This patch removes unnecessary link status check. Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port level") Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port level") Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722") Cc: stable@dpdk.org Signed-off-by: Simei Su --- drivers/net/i40e/i40e_ethdev.c | 47 +++++++++--------------------------------- 1 file changed, 10 insertions(+), 37 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 7726a89d..e21e4d9 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -387,7 +387,6 @@ static int i40e_set_default_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr); static int i40e_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu); -static void i40e_set_mac_max_frame(struct rte_eth_dev *dev, uint16_t size); static int i40e_ethertype_filter_convert( const struct rte_eth_ethertype_filter *input, @@ -2467,8 +2466,16 @@ i40e_dev_start(struct rte_eth_dev *dev) "please call hierarchy_commit() " "before starting the port"); - max_frame_size = dev->data->mtu + I40E_ETH_OVERHEAD; - i40e_set_mac_max_frame(dev, max_frame_size); + max_frame_size = dev->data->mtu ? + dev->data->mtu + I40E_ETH_OVERHEAD : + I40E_FRAME_SIZE_MAX; + + /* Set the max frame size to HW*/ + ret = i40e_aq_set_mac_config(hw, max_frame_size, TRUE, false, 0, NULL); + if (ret) { + PMD_DRV_LOG(ERR, "Fail to set mac config"); + return ret; + } return I40E_SUCCESS; @@ -12123,40 +12130,6 @@ i40e_cloud_filter_qinq_create(struct i40e_pf *pf) return ret; } -static void -i40e_set_mac_max_frame(struct rte_eth_dev *dev, uint16_t size) -{ - struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private); - uint32_t rep_cnt = MAX_REPEAT_TIME; - struct rte_eth_link link; - enum i40e_status_code status; - bool can_be_set = true; - - /* - * I40E_MEDIA_TYPE_BASET link up can be ignored - * I40E_MEDIA_TYPE_BASET link down that hw->phy.media_type - * is I40E_MEDIA_TYPE_UNKNOWN - */ - if (hw->phy.media_type != I40E_MEDIA_TYPE_BASET && - hw->phy.media_type != I40E_MEDIA_TYPE_UNKNOWN) { - do { - update_link_reg(hw, &link); - if (link.link_status) - break; - rte_delay_ms(CHECK_INTERVAL); - } while (--rep_cnt); - can_be_set = !!link.link_status; - } - - if (can_be_set) { - status = i40e_aq_set_mac_config(hw, size, TRUE, 0, false, NULL); - if (status != I40E_SUCCESS) - PMD_DRV_LOG(ERR, "Failed to set max frame size at port level"); - } else { - PMD_DRV_LOG(ERR, "Set max frame size at port level not applicable on link down"); - } -} - RTE_LOG_REGISTER_SUFFIX(i40e_logtype_init, init, NOTICE); RTE_LOG_REGISTER_SUFFIX(i40e_logtype_driver, driver, NOTICE); #ifdef RTE_ETHDEV_DEBUG_RX -- 2.9.5