From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) by dpdk.org (Postfix) with ESMTP id B7AD71B7C0 for ; Thu, 10 May 2018 00:43:29 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 1A95E229CE; Wed, 9 May 2018 18:43:29 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Wed, 09 May 2018 18:43:29 -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=TsbLlACq7gcmJa E3sbAn2tLDZ8+gs6Dho3BI8RlvFwY=; b=Ocq8koXAZfac0qRNlI+UcwCzvfxPFe As4onZVht1+yEw92M3LY9TpegVQRW2jNITZvNEYdvqa8S8AOdn5QJnwkovf5KAV7 ItdgJ8CznAYt/oAC3ZPtx6AmUtYTyJXNX+9roVRtO0AbJhVHOX6cXrcwSGTo68a8 SdRStOOKkp824= 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=TsbLlACq7gcmJaE3sbAn2tLDZ8+gs6Dho3BI8RlvFwY=; b=CZenRQXJ 9hyA9pfZFxkssAJAVRikxIAE/ZkwS9xcDh5cwRlrgCadWAaJZBa5GgAybQVpAVlz CwwRaItwsQqaSlMxlT/5HC2L9GwsfwuqhnswXcSXpHS2dV0upV4Y+3/gzDCf+bkD GYebJqancDr05pTeKZ3XMJtv1lf796YRwPwb4Fd5/YBh7hWPvkLDwFhzWxlsAVI7 BK5xzCBxOte6jyfma/fJtjt3Up8ZzfJg752XiNZh3pRSeCvcpycJVKpwPVtWMQgh 4dARZJMVcLQskdzSJ1nWZnK7XLciNZ9lUi+xFySd2c+6hOmikxYEFHWMai3cF8uU 22NY6svNdpBVyw== 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 6FAF3E509B; Wed, 9 May 2018 18:43:28 -0400 (EDT) From: Thomas Monjalon To: dev@dpdk.org Cc: Matan Azrad Date: Thu, 10 May 2018 00:43:13 +0200 Message-Id: <20180509224313.27289-12-thomas@monjalon.net> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180509224313.27289-1-thomas@monjalon.net> References: <20180509094337.26112-1-thomas@monjalon.net> <20180509224313.27289-1-thomas@monjalon.net> Subject: [dpdk-dev] [PATCH v2 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 22:43:30 -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 Reviewed-by: Ferruh Yigit --- 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 023e31d88..12e98d10b 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