From patchwork Wed Sep 11 16:02:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Herbelot X-Patchwork-Id: 59119 X-Patchwork-Delegate: xiaolong.ye@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7620C1E8AC; Wed, 11 Sep 2019 18:03:04 +0200 (CEST) Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by dpdk.org (Postfix) with ESMTP id D5A581BF6C for ; Wed, 11 Sep 2019 18:03:02 +0200 (CEST) Received: by mail-wm1-f65.google.com with SMTP id y135so2561937wmc.1 for ; Wed, 11 Sep 2019 09:03:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=UQ8I2Hw07zvT4NGIOry2DIlP9uPN9h3XCYatz8Jb8bg=; b=jnwj+TbOECvrSZgHiw4OjaGxTRD23AXBJJzJ9va7/QKLijclsePj9AgI39BMkXv0Tz DLfzfuklp/Huc9B7gADFAb+IBoXo01kBC0WInsxanRN1I9bAkAj0i150YAIwE0Tj/68i iZMITjPpFlfq8MMmokyImZMEx/gVcyQS/AI90UxSxzeDY4VTKXk2EMbT28sPNZAm21Mm KmwD3MvYi9l3Cny+pJSTAV9PfSz3x4/kO/mXnAqsyDWeE6y35j/AonaH95GmuZuNfOZv hj6yLwXSzY5wW+UEnHDdZtdRWfWG1TZ9Fks+zTEQbQdoJxVPcamzSKCKtBm7n60kba9a Nf1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=UQ8I2Hw07zvT4NGIOry2DIlP9uPN9h3XCYatz8Jb8bg=; b=ppbm7pK0hraK2CyBmrVozObBtRYq8s5NLNPdxU0lEgbhNvSJam2m5XlhujkipuS84F e28IwpLyBd2AHgjIOgG/ROGhNib4Kk5zrOnMDSmVd4GlgTLE2csaKWxakSh8kwnDitD0 83lhTViVvvMJn208Hz03lCcINN0O1H8Oznkmb09Wc/hf1kXcCiadcyckb//3ZpCDa7Bm 2JuxeOtQkHQATyJif3GPl4KiWUTRU7PsvdCay0ZZ306vWlm7cfbRTpvwAQH/ALuT/mo0 3QvndU0XvUElMp04aZUkFJbKFcZDWE9J6/WfBMboyHxRRby/0I5xhzUvEZ2hEsoMmwdE 9qYg== X-Gm-Message-State: APjAAAXuAai8Lrd60mXe/kZPKH6m8Jm1Rmkd+42WEHhqpLp1at3YTKFE AiX7nhAHLRwweW9xGymbKaGGPEUq5iWb X-Google-Smtp-Source: APXvYqzGuBWT476AB6adUDO6+2j2P1AwzHF2XP1jelCzD+OgNcNF7Eo0E8+xTn6LgY/l6fw7sGMmWw== X-Received: by 2002:a7b:c319:: with SMTP id k25mr4788564wmj.48.1568217782439; Wed, 11 Sep 2019 09:03:02 -0700 (PDT) Received: from ascain.dev.6wind.com. (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id b144sm3586030wmb.3.2019.09.11.09.03.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Sep 2019 09:03:01 -0700 (PDT) From: Thierry Herbelot To: dev@dpdk.org Cc: Laurent Hardy , Thomas Monjalon , stable@dpdk.org, beilei.xing@intel.com, qi.z.zhang@intel.com Date: Wed, 11 Sep 2019 18:02:51 +0200 Message-Id: <2121840c6dc59bcd1caffa8f4c8428fed5d667a7.1568216789.git.thierry.herbelot@6wind.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH] net/i40e: set speed to undefined for default case in link update X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Laurent Hardy During PF/VF link update, a default speed value of 100M will be set if get_link_info has failed or speed is unknown. Consequently if PF is put in no-carrier state, VFs will switch to "in carrier" state due to a link up + a link speed set to 100M (default value if no speed detected). To be consistent with linux drivers on which PF and VFs are in same carrier state, sets default speed to undefined (instead of 100M) and updates a link status of VF only if link is up and speed is different from undefined. Fixes: 4861cde46116 ('i40e: new poll mode driver') Cc: stable@dpdk.org Cc: beilei.xing@intel.com Cc: qi.z.zhang@intel.com Signed-off-by: Laurent Hardy Acked-by: Qi Zhang Reviewed-by: Xiaolong Ye --- drivers/net/i40e/i40e_ethdev.c | 4 ++-- drivers/net/i40e/i40e_ethdev_vf.c | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 4e40b7ab5250..76abe8209a10 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -2743,7 +2743,7 @@ update_link_aq(struct i40e_hw *hw, struct rte_eth_link *link, status = i40e_aq_get_link_info(hw, enable_lse, &link_status, NULL); if (unlikely(status != I40E_SUCCESS)) { - link->link_speed = ETH_SPEED_NUM_100M; + link->link_speed = ETH_SPEED_NUM_NONE; link->link_duplex = ETH_LINK_FULL_DUPLEX; PMD_DRV_LOG(ERR, "Failed to get link info"); return; @@ -2777,7 +2777,7 @@ update_link_aq(struct i40e_hw *hw, struct rte_eth_link *link, link->link_speed = ETH_SPEED_NUM_40G; break; default: - link->link_speed = ETH_SPEED_NUM_100M; + link->link_speed = ETH_SPEED_NUM_NONE; break; } } diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index c77b30c54ba7..a63b83f81718 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -2143,13 +2143,15 @@ i40evf_dev_link_update(struct rte_eth_dev *dev, new_link.link_speed = ETH_SPEED_NUM_40G; break; default: - new_link.link_speed = ETH_SPEED_NUM_100M; + new_link.link_speed = ETH_SPEED_NUM_NONE; break; } /* full duplex only */ new_link.link_duplex = ETH_LINK_FULL_DUPLEX; - new_link.link_status = vf->link_up ? ETH_LINK_UP : - ETH_LINK_DOWN; + new_link.link_status = vf->link_up && + new_link.link_speed != ETH_SPEED_NUM_NONE + ? ETH_LINK_UP + : ETH_LINK_DOWN; new_link.link_autoneg = !(dev->data->dev_conf.link_speeds & ETH_LINK_SPEED_FIXED);