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 3D0CC7FB1 for ; Wed, 9 May 2018 04:24:40 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id E139820E62; Tue, 8 May 2018 22:24:39 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 08 May 2018 22:24:39 -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=iBsOdZg49D/gT0 L3GfGuYEbeXjo9wvIceDDk1/98zNU=; b=TM99/8TVZxDV+ppMhSMKO1etUejDCS 9Cs0dhyU2sylOiaFFv+qhPjwt+yUiHU3ZDdcnPWodynmpnNKx4YyLEHCkHhjKRq9 PSFRvrTVOlXlV3pNhOCGdk3E8F4XXlsvVQhdR652Aq4jycHl/Edp9pkrIfhEvan7 JLi82syeAVjGI= 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=iBsOdZg49D/gT0L3GfGuYEbeXjo9wvIceDDk1/98zNU=; b=a4oyqYHK PaQKXP2JE+Bi/SpZTUyLOWORC4VQ9SMGqt7H3fOhPoeaSxOIy5+YDl8pHCrgoByI f/wd1rXEQjd29hy3orz+htb87mc7sh9+kJohdwxA5K18z7fY0bNHApAUxpup2NL/ 7rias3qh0mcnXwlF1svH94SjFS2HaZrwX0L2Yv9VLralMhiT/Mc8HvA0g8Hvz0Kn FvW180/HyhpCMxPC3oSXCA/4FXwLkb+mol84R/AR2eoIS+9Pp7ed4uoTTt9OPMCu Vz9qQq5MPcDQLhQqflbs/PJq0mHcHNqvlat1tsVBJ9eiYtrCu91Vjk56Hwi7RLX9 /ZAUHkU5LFjlmw== 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 47B48E4EEF; Tue, 8 May 2018 22:24:39 -0400 (EDT) From: Thomas Monjalon To: matan@mellanox.com Cc: stable@dpdk.org Date: Wed, 9 May 2018 04:24:24 +0200 Message-Id: <20180509022426.10009-11-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 10/12] ethdev: fix port probing notification 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:40 -0000 The new device was notified as soon as it was allocated. It leads to use a device which is not yet initialized. The notification must be published after the initialization is done by the PMD, but before the state is changed, in order to let notified entities taking ownership before general availability. Fixes: 29aa41e36de7 ("ethdev: add notifications for probing and removal") Cc: stable@dpdk.org Signed-off-by: Thomas Monjalon --- lib/librte_ethdev/rte_ethdev.c | 5 ++--- lib/librte_ethdev/rte_ethdev_driver.h | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index 03f5f617d..15a12c249 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -315,9 +315,6 @@ rte_eth_dev_allocate(const char *name) unlock: rte_spinlock_unlock(&rte_eth_dev_shared_data->ownership_lock); - if (eth_dev != NULL) - _rte_eth_dev_callback_process(eth_dev, RTE_ETH_EVENT_NEW, NULL); - return eth_dev; } @@ -3358,6 +3355,8 @@ rte_eth_dev_probing_finish(struct rte_eth_dev *dev) if (dev == NULL) return; + _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_NEW, NULL); + dev->state = RTE_ETH_DEV_ATTACHED; } diff --git a/lib/librte_ethdev/rte_ethdev_driver.h b/lib/librte_ethdev/rte_ethdev_driver.h index 3640dff68..c9c825e3f 100644 --- a/lib/librte_ethdev/rte_ethdev_driver.h +++ b/lib/librte_ethdev/rte_ethdev_driver.h @@ -106,6 +106,8 @@ int _rte_eth_dev_callback_process(struct rte_eth_dev *dev, * This is the last step of device probing. * It must be called after a port is allocated and initialized successfully. * + * The notification RTE_ETH_EVENT_NEW is sent to other entities + * (libraries and applications). * The state is set as RTE_ETH_DEV_ATTACHED. * * @param dev -- 2.16.2