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 D0DFFAAAE; Wed, 9 May 2018 11:43:51 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 7BACC2248D; Wed, 9 May 2018 05:43:51 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Wed, 09 May 2018 05:43:51 -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=ZnI9ZTOXZpUy5t 9RQ+JmG8OdP7Xq76vIHLu6sbZILPY=; b=V/6DJBBEHBHyK18E8HA8X1anxcmxfY vluK5B/b0ZwfJcQ4Fa7k/7O/aFPE5nUoANUcqPzK9oZ/WvaxGtUxgiIuV5TtI3DW 1j2W0UaEba44wVllej8Q8ILzKJueI3h28kvhNxMZydKRdgCJfITy6CjwjZ/z7Uum oZw1vyKpzX36Y= 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=ZnI9ZTOXZpUy5t9RQ+JmG8OdP7Xq76vIHLu6sbZILPY=; b=HtMKiZ/4 gvChbSR8cGcZoP+P1srXvM2im+1v5+omQIcWimV7ak5rMhMJejtTRlMUewiJQEYs JWnFqxfZkW+reXLNQEZSZ5ZmfESfe2EHwbaMnuR/iygb4Ur9aFoe6WdAZk4oZ7ER IQzy08EhTZq1DwNDN65pY8IgAj3RVuSNHEmULFlFAdrqh+xBbzbc3GBD8kLUWvcy AY8yY0lzPtdTUjGZMhdyThgNx/svNZxRJdxNpBfyoUJ+kL6m5J41NpV2dEQ8x6kU k2FOpjEmRXrmqAqMKkHc1DmKUBhcKQah+YAtILUaQLD5cEkfe38baugmFpW2YiHB oKUYfuAtNQ/EHw== 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 D80B2E5082; Wed, 9 May 2018 05:43:50 -0400 (EDT) From: Thomas Monjalon To: dev@dpdk.org Cc: stable@dpdk.org Date: Wed, 9 May 2018 11:43:35 +0200 Message-Id: <20180509094337.26112-10-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 09/11] ethdev: fix port probing notification 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:52 -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 91cd0db11..e1209bb2a 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; } @@ -3386,6 +3383,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