From patchwork Thu Nov 24 11:26:47 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Blunck X-Patchwork-Id: 17244 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id D9E855687; Thu, 24 Nov 2016 12:36:09 +0100 (CET) Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by dpdk.org (Postfix) with ESMTP id 15F98558D; Thu, 24 Nov 2016 12:35:42 +0100 (CET) Received: by mail-wm0-f66.google.com with SMTP id a20so4726653wme.2; Thu, 24 Nov 2016 03:35:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=/wA5hQqR5CE6rW0bpWlRbqeN/ZvV2ZLxZni+Fg7dF+w=; b=fP/tuK9L0+wAu+HG7BRGGLgwvCsbMBIrQF+7ggx9Ai4G4oAeyj4W8VTs+eENiSOzQJ Q4ba7PwjzK4oNlowsaPRdj6WwBRGJ3xv+KvRFg66H20UMuBBBcd2YF8Ug3t8MPxGJ+B1 etJ7K9LRDiyUwzECNUYoo4vn8a4v6ftUu4K8WV4UdXi2jGgUEE8voeQ4IscoennNKBdP 45fcFpjUMvBRuYQviUipAJQ1BVL/LlCPpc51usAuP7YydnshmVRGpuKRNWnJthAKZgVS gdS/aKl48coYt5V3j7f2wsc0t4bq1AsnAIVppx3kpBDeohS9DTQDWWGzbMrVBZuF+Zwy srXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=/wA5hQqR5CE6rW0bpWlRbqeN/ZvV2ZLxZni+Fg7dF+w=; b=fkcnXqRvPgvxzUzuBbgUrOeMZpsii3YdNSVi2Vxj2jB/D8S56AkJBKTit5OJV1A1Np n2Xqfwxt8G0VlMLT06ucKUw7N/3RQ5EUfviTzvCnWRjN8sj1jEQ8v4z+FBCw/RoxlA4z GLHFFdVyGbsYZrOadMheu8BTJ5QTu7UZAUggzwXZUb5Lv27JAf6dt1+u8cGGSSpc7sFz oFJMSNZLnP+8itunqEHwYvbd0+AIxXDAvACRdyifnsE3+uSeumK/O2ioM3P4bN0y/OIX GcQIngf5lhDAbr98LWW7TomNOWjr/QSZIz7hATC6cH6INOaQdfRZRnE6fPfzeXkZDBNK 6ppA== X-Gm-Message-State: AKaTC0353/Qi9IXBjNK9ZmHfJYcC6fUNcsooY9WrhlZ+ZdoOrvCO3i9aokG+Ha+Zt5Tzsw== X-Received: by 10.28.18.129 with SMTP id 123mr1811540wms.2.1479987342603; Thu, 24 Nov 2016 03:35:42 -0800 (PST) Received: from weierstrass.local.net ([91.200.110.70]) by smtp.gmail.com with ESMTPSA id l74sm7786020wmg.2.2016.11.24.03.35.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Nov 2016 03:35:42 -0800 (PST) From: Jan Blunck To: dev@dpdk.org Cc: ferruh.yigit@intel.com, i.maximets@samsung.com, bruce.richardson@intel.com, declan.doherty@intel.com, ehkinzie@gmail.com, bernard.iremonger@intel.com, stable@dpdk.org Date: Thu, 24 Nov 2016 12:26:47 +0100 Message-Id: <1479986809-14934-4-git-send-email-jblunck@infradead.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1479986809-14934-1-git-send-email-jblunck@infradead.org> References: <1479986809-14934-1-git-send-email-jblunck@infradead.org> Subject: [dpdk-dev] [PATCH v2 3/5] ethdev: Add DPDK internal _rte_eth_dev_reset() X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This is a helper for DPDK internal users to force a reconfiguration of a device. Signed-off-by: Jan Blunck --- lib/librte_ether/rte_ethdev.c | 16 ++++++++++++++++ lib/librte_ether/rte_ethdev.h | 13 +++++++++++++ lib/librte_ether/rte_ether_version.map | 6 ++++++ 3 files changed, 35 insertions(+) diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index a3986ad..9e69ee5 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -858,6 +858,22 @@ rte_eth_dev_configure(uint8_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q, return 0; } +void +_rte_eth_dev_reset(struct rte_eth_dev *dev) +{ + if (dev->data->dev_started) { + RTE_PMD_DEBUG_TRACE( + "port %d must be stopped to allow reset\n", + dev->data->port_id); + return; + } + + rte_eth_dev_rx_queue_config(dev, 0); + rte_eth_dev_tx_queue_config(dev, 0); + + memset(&dev->data->dev_conf, 0, sizeof(dev->data->dev_conf)); +} + static void rte_eth_dev_config_restore(uint8_t port_id) { diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index 9678179..e0740db 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -1914,6 +1914,19 @@ int rte_eth_dev_configure(uint8_t port_id, uint16_t nb_rx_queue, uint16_t nb_tx_queue, const struct rte_eth_conf *eth_conf); /** + * @internal Release a devices rx/tx queues and clear its configuration to + * force the user application to reconfigure it. It is for DPDK internal user + * only. + * + * @param dev + * Pointer to struct rte_eth_dev. + * + * @return + * void + */ +void _rte_eth_dev_reset(struct rte_eth_dev *dev); + +/** * Allocate and set up a receive queue for an Ethernet device. * * The function allocates a contiguous block of memory for *nb_rx_desc* diff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rte_ether_version.map index 72be66d..0c31c5d 100644 --- a/lib/librte_ether/rte_ether_version.map +++ b/lib/librte_ether/rte_ether_version.map @@ -147,3 +147,9 @@ DPDK_16.11 { rte_eth_dev_pci_remove; } DPDK_16.07; + +DPDK_17.02 { + global: + + _rte_eth_dev_reset; +} DPDK_16.11;