From patchwork Wed Nov 23 19:38:31 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Blunck X-Patchwork-Id: 17199 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 532BD58CB; Wed, 23 Nov 2016 20:40:26 +0100 (CET) Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by dpdk.org (Postfix) with ESMTP id E27BF5598 for ; Wed, 23 Nov 2016 20:40:04 +0100 (CET) Received: by mail-wm0-f67.google.com with SMTP id a20so2971772wme.2 for ; Wed, 23 Nov 2016 11:40:04 -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=TXUG6Eqn7tnxnLTFAeeoSrG1JpfGSVbgO7PcMj7Wo84=; b=Jf+PDcX0G0UkedhMBL57B9hUvrFzkZLNDt7vF++PZKCgckBq3nDonz6lzGyKslIrJo ng9hUatzNKBn4eBVArC2ZVxAbno7WhEfKyEAUUDCoaapSSytKpZArZgPb7KLidrmrGNQ 5qEE3+dnKD8sOFUmS1tcZfPie2JKlo8V/WMCauAVut7g6kPS0CXxmbwiXonFMKzdDr1j 3ymlq1LWlcl6c/TIfavMUMtBH87oNunnVcBcBhIqO3GMhsWLAiFc9uCoE0BAMMtrnAPC wFKKgydnYxr291+TfF1PWMaJtwfoMWUx5ywNzi1ZJYUatbNJqo7O4LWOvD83yguYJQ0W 0E8w== 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=TXUG6Eqn7tnxnLTFAeeoSrG1JpfGSVbgO7PcMj7Wo84=; b=k/PpJtG2vmf4D4rH1l+DJKR32fb7NdRldjBR6ZrqzI2Ov+tqBGZbbnSDXDEWBU4KFq mcg8a9y/wDrjkV4lDc/xjZpm+oEOk80EfXpxUfovROKpuimsMOMimigc/YAG4NDZZeJU p6x7s2F93uCdkN7pY7N+BYhl9lTEVKEE2R7cRQOsauQAj3gq3bcqNSWVNbie9NzuzpcV KiIQveK0SUB5O8f40Li9O7YX10rFY8oYqg3a2vA/P8QWs87ydCg1FfJmMpCs2J6wMbI5 PwQ6bck9crE1MO0+paqOd/uiGX5EWO/RdXjAuHUaHcQ2KnLXtgz7TNo/EAjZYI65YXbj DOWA== X-Gm-Message-State: AKaTC00sa1n6KRxsf/woDM0hyepTfQUSTBVyMd6U6l1ARyV6M0jIlaHpRtmMgY2/alAnDw== X-Received: by 10.28.43.198 with SMTP id r189mr8714275wmr.67.1479930004469; Wed, 23 Nov 2016 11:40:04 -0800 (PST) Received: from weierstrass.local.net ([91.200.110.70]) by smtp.gmail.com with ESMTPSA id g184sm4339684wme.23.2016.11.23.11.40.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Nov 2016 11:40:03 -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 Date: Wed, 23 Nov 2016 20:38:31 +0100 Message-Id: <1479929912-32079-3-git-send-email-jblunck@infradead.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1479929912-32079-1-git-send-email-jblunck@infradead.org> References: <1479929912-32079-1-git-send-email-jblunck@infradead.org> Subject: [dpdk-dev] [PATCH 3/4] 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 | 15 +++++++++++++++ lib/librte_ether/rte_ethdev.h | 13 +++++++++++++ lib/librte_ether/rte_ether_version.map | 6 ++++++ 3 files changed, 34 insertions(+) diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index a3986ad..bd5787b 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -858,6 +858,21 @@ 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", 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;