From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4E07CA2EEB for ; Wed, 11 Sep 2019 18:03:04 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3C5541BF6C; Wed, 11 Sep 2019 18:03:04 +0200 (CEST) Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by dpdk.org (Postfix) with ESMTP id A25201BF6C for ; Wed, 11 Sep 2019 18:03:02 +0200 (CEST) Received: by mail-wm1-f66.google.com with SMTP id r17so2559629wme.0 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=tnCxp/ZMsy5X+vdZnrf8OGjvRK/HSEQRs6ba3bhfkQMZ2rbGNa2Q7n2rSwyTvzPtP/ DNuSY+QIfpv3/uepzGGhGtyxPYtBvSlJnnM5aW2pC1IrAm6KR8abDnFaU1d3CgALqMXF 6d5bjCpep+zZZGybwUF2jp7euel/X5XkBKJbZd2QwEmfepZCqvxzf1RAzJTuIEJL/6Ua KMJEjH7lHlqNO2rs0sizeV/3usK6WfLczvHsXOO1ix68/870PoaULszP4tysHAWc0vUm tI6Ria9wv4FE17aHK5K6hU08qsZVIEVjdsg7va7hA195yr5N8Tw4mIfmMsGT1lW0Bar6 21Gg== X-Gm-Message-State: APjAAAXYtgBirzbg99PGb9qK8ThjxmH0lcZ8mYMZbVZG5wKXYGBQOzSA gbeiKz1dTx8EQmOw9rgQlB77 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 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] [PATCH] net/i40e: set speed to undefined for default case in link update X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" 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 --- 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); -- 2.20.1