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 7A0BB7FB1 for ; Wed, 9 May 2018 04:24:41 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 28CEF225B5; Tue, 8 May 2018 22:24:41 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 08 May 2018 22:24:41 -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=wTWvBGDgGvTwP6 HzP7d0/q6z/IrAtONr8YFeFe2nbbU=; b=md7b2Vf6J+GnbYArpbqH7/uInRf+66 xtO/dWiQ/SG0jej2DSLAQkyZ3DH9+ttJ2evUh11ak35anotWnsOxVYI2MsjWaxln c+kKTWYJftHJ2uGTyEhKGuPiIHPyaEqwrBUm2z1Ex9a+V0sDM9eZkrdM2OO9ySMv +AYuKNjbp/HCI= 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=wTWvBGDgGvTwP6HzP7d0/q6z/IrAtONr8YFeFe2nbbU=; b=eCG7OIDS Lm9e+tc5OSUKm96GHSUtrzG+tEQ2/Ao+6Yq8KeAMKPiyB9Tfq8MqOybeH3SI3Blg ERUcxpxmBztM9cvZiKRF1Ti1j3ajCn+hzs0tUHorX8eWsbDoQUcVD7XA5kHuPTWN VceVdoXvddiQ6RV8I+BXcLMbFKgdSgTV/YEvmurzV6IAmlUEvc2GHnzFaXIOVEdf vp/E67DkzbET8zbvOrdfXAcqVbwis+jkeYixs4wMqoBt+MwI//Fi+fOCn7LO1nfF qDIQ3iHVbB6G4Y8svf1fTUtOLcIGmDmFvyANJCRQlfTB/XiOlXE1t4dMkrW9cbuE fGpfRdD1w/JzJQ== 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 89ABAE4EEF; Tue, 8 May 2018 22:24:40 -0400 (EDT) From: Thomas Monjalon To: matan@mellanox.com Cc: stable@dpdk.org Date: Wed, 9 May 2018 04:24:26 +0200 Message-Id: <20180509022426.10009-13-thomas@monjalon.net> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180509022426.10009-1-thomas@monjalon.net> References: <20180509022426.10009-1-thomas@monjalon.net> Subject: [dpdk-stable] [PATCH 12/12] ethdev: fix port removal notification timing 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, 09 May 2018 02:24:41 -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 15a12c249..a2504abed 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