From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id AC8F72986 for ; Wed, 17 May 2017 07:20:10 +0200 (CEST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga105.jf.intel.com with ESMTP; 16 May 2017 22:20:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.38,352,1491289200"; d="scan'208";a="87767825" Received: from unknown (HELO localhost.localdomain.sh.intel.com) ([10.239.129.229]) by orsmga002.jf.intel.com with ESMTP; 16 May 2017 22:20:08 -0700 From: Qi Zhang To: stable@dpdk.org Cc: qi.z.zhang@intel.com Date: Wed, 17 May 2017 02:10:26 -0400 Message-Id: <20170517061026.50745-1-qi.z.zhang@intel.com> X-Mailer: git-send-email 2.9.3 Subject: [dpdk-stable] [PATCH] net/i40e: fix VF link status 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: , X-List-Received-Date: Wed, 17 May 2017 05:20:11 -0000 VF link status rely on PF's notification, so when PF link status be updated, it should notify VF to update link status also. Current implementation only cover part of the situation when PF's link status is updated, call i40e_notify_all_vfs_link_status in i4e_dev_link_update will cover all situationa. Fixes: bb6722fb5c0e ("net/i40e: fix VF bonded device link down") Signed-off-by: Qi Zhang --- drivers/net/i40e/i40e_ethdev.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 67778ba..c4f79e4 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -460,6 +460,7 @@ static void i40e_set_default_mac_addr(struct rte_eth_dev *dev, struct ether_addr *mac_addr); static int i40e_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu); +static void i40e_notify_all_vfs_link_status(struct rte_eth_dev *dev); static const struct rte_pci_id pci_id_i40e_map[] = { { RTE_PCI_DEVICE(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_SFP_XL710) }, @@ -2070,6 +2071,8 @@ i40e_dev_link_update(struct rte_eth_dev *dev, if (link.link_status == old.link_status) return -1; + i40e_notify_all_vfs_link_status(dev); + return 0; } @@ -5498,11 +5501,9 @@ i40e_dev_handle_aq_msg(struct rte_eth_dev *dev) break; case i40e_aqc_opc_get_link_status: ret = i40e_dev_link_update(dev, 0); - if (!ret) { - i40e_notify_all_vfs_link_status(dev); + if (!ret) _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC, NULL); - } break; default: PMD_DRV_LOG(ERR, "Request %u is not supported yet", -- 2.9.3