From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id 5DA9ACFA2; Wed, 9 May 2018 11:43:53 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id F02832104B; Wed, 9 May 2018 05:43:52 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Wed, 09 May 2018 05:43:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= cc:date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=mesmtp; bh=G8jtOUw+7In4Xb 2m3P+iu1HI1X5Yt6l1BuEgkDsUleU=; b=gym42XaH+fZqDfVFQ2eDtgzR1FB/it kja4YIHScA+qYb6BksGWle/MhgL7Qod3hKUC6GKonKHIGtZuFENiELf9jIJrlzEl CL6e9Ha4OuyIDtS2pV5lK9aG7eHJ2wCZfexRX6WhCno/Xj9+SSYAb1BJz8VEaJsn U/UsTtlE/hquw= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=G8jtOUw+7In4Xb2m3P+iu1HI1X5Yt6l1BuEgkDsUleU=; b=m/v/0ibA wJ6VnfRwBa0mvRhQbzI3WIZAc3jRSNoLm97W/zes+7CfEEO2BLX6w2flG0XhUYtq 9QWKCxS5a2/WXZ2zqWistzMnkqyesZJOcPeaWIRgvSCUl3RQRMyAqTo/i9NBkFP2 yUo3DYeTJWtuRiSG0mmePAMugxubznZsHz3uxw35bgcg6SsFFdSkof1s6WwaaTiH QN193MpWLOE5JijlUNC7WdZXiy0mXdoVMMGHyazQw1lvZsz0GyHff09ploPhOwo3 g1ixjN5mX/J23JO2OiwPRhMh31gKwhw3CTRUuB8Soju3Z1QI7XyvdfVYxFTMWA0v 0NSTEQWagJSZ1g== X-ME-Sender: Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 3E4A0E444A; Wed, 9 May 2018 05:43:52 -0400 (EDT) From: Thomas Monjalon To: dev@dpdk.org Cc: Matan Azrad , stable@dpdk.org Date: Wed, 9 May 2018 11:43:37 +0200 Message-Id: <20180509094337.26112-12-thomas@monjalon.net> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180509094337.26112-1-thomas@monjalon.net> References: <20180509094337.26112-1-thomas@monjalon.net> Subject: [dpdk-dev] [PATCH 11/11] ethdev: fix port removal notification timing 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: , X-List-Received-Date: Wed, 09 May 2018 09:43:53 -0000 From: Matan Azrad When an ethdev port is released, a destroy event is triggered to notify the users about the released port. A bit before the destroy event is triggered, the port becomes invalid by changing its state to UNUSED and cleaning its data. Therefore, the port is invalid for the destroy event callback process and the users may get a wrong information of the port. Move the destroy event emitting to be called before the port invalidation. Fixes: 133b54779aa1 ("ethdev: fix port data reset timing") Fixes: 29aa41e36de7 ("ethdev: add notifications for probing and removal") Cc: stable@dpdk.org Signed-off-by: Matan Azrad Acked-by: Thomas Monjalon --- lib/librte_ethdev/rte_ethdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index e1209bb2a..45ef13ab8 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -359,6 +359,8 @@ rte_eth_dev_release_port(struct rte_eth_dev *eth_dev) rte_eth_dev_shared_data_prepare(); + _rte_eth_dev_callback_process(eth_dev, RTE_ETH_EVENT_DESTROY, NULL); + rte_spinlock_lock(&rte_eth_dev_shared_data->ownership_lock); eth_dev->state = RTE_ETH_DEV_UNUSED; @@ -367,8 +369,6 @@ rte_eth_dev_release_port(struct rte_eth_dev *eth_dev) rte_spinlock_unlock(&rte_eth_dev_shared_data->ownership_lock); - _rte_eth_dev_callback_process(eth_dev, RTE_ETH_EVENT_DESTROY, NULL); - return 0; } -- 2.16.2