From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 483C8A0471 for ; Mon, 12 Aug 2019 13:19:58 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 58DE149E0; Mon, 12 Aug 2019 13:19:57 +0200 (CEST) Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by dpdk.org (Postfix) with ESMTP id E355B378B for ; Mon, 12 Aug 2019 13:19:55 +0200 (CEST) Received: by mail-wr1-f66.google.com with SMTP id p17so104205404wrf.11 for ; Mon, 12 Aug 2019 04:19:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netcope.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=DVZjN8aJApXOGfIqwsOIh0EAxQ1MFQJGhWs7+GBDjIs=; b=mMWjvVdD4jYysyRkdFZJdsPwXNSWn99ZK+mgUvyc1uBPwZjia6B4KGNi8f6Y+UOzrd qpCEFpbre3SmYKtCzVBlWPM9J/VQKAySeS3zwJ+0h2oihXb4FBF2mq+CCaITSjDeX+CR YtOwkWOIfuO27QR6j6jTtrB5EB9T+ulV7hBNLRsvi/eRtNk2N+bZ+pXknZhrP/i1zCJG FX5/o3uGp9zJ3k/5fmNJhbjkDXLK+M6n3ajLsjveFrOFdWX4oPOFmWbNKQ+aw+dyVF6K +S+4TKcZYuz9Yd5BceQZbMbV91+trp0zrPylppzku+yqXtwbZUs1bXDU+UqjtuG1YlRs N7xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=DVZjN8aJApXOGfIqwsOIh0EAxQ1MFQJGhWs7+GBDjIs=; b=kJJTOHhqssRdiFsNR7DeYy5TkYhwLTHuLP6EvIkO3Dg1R+E8sjoECiJSSN+eK2tO1A NOE5H+yqFzB0ZbpKoSLmqaVnnFis9QmNUj5nGkml1w6xYRc/lDUZuNDQK4FSi4Aow6HL TZielkBnT0lc8XSxoOnHEisi/tQZPsDYlwFH+4AQH+hELUevg8ddh1gBD5vijgM4AbqT y1mYTLXX0nJl52/j8Gmg0V88NHhtoYqWVRmG4Hks8f5L5i28OXAKWa6iDDlasz/YPa0K cB7DOwbRaK/2azn4cmtSCKQSc0kccULQ0jrUr0vox6KBHTotFGaDRW8qkJ3RZLaX/0mI /Dug== X-Gm-Message-State: APjAAAWnQOYkYSVr82CUhIgepeybycJgBXziEZ1efHcdSWrBTm2q3WPO hYcZ2ixjeMXZsTxmdBBE20xfzms0Cwc= X-Google-Smtp-Source: APXvYqyWVLjm+p/G66xQP7lCFO1ekCArhelQwe/GDFXKYSuObGBGE09s075d5rOlTJKtmKNintVs1A== X-Received: by 2002:a5d:5343:: with SMTP id t3mr1236474wrv.156.1565608795468; Mon, 12 Aug 2019 04:19:55 -0700 (PDT) Received: from sw-c1.int.netcope.com ([5.180.196.50]) by smtp.gmail.com with ESMTPSA id l14sm10585773wrn.42.2019.08.12.04.19.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 12 Aug 2019 04:19:54 -0700 (PDT) From: Rastislav Cernay X-Google-Original-From: Rastislav Cernay To: dev@dpdk.org Cc: Rastislav Cernay Date: Mon, 12 Aug 2019 13:19:38 +0200 Message-Id: <1565608778-17185-1-git-send-email-cernay@netcope.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1565362745-152027-1-git-send-email-cernay@netcope.com> References: <1565362745-152027-1-git-send-email-cernay@netcope.com> Subject: [dpdk-dev] [PATCH v2] net/nfb: remove resources when port is closed 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Rastislav Cernay The rte_eth_dev_close() function now handles freeing resources for devices (e.g., mac_addrs). To conform with the new close() behaviour we are asserting the RTE_ETH_DEV_CLOSE_REMOVE flag so that rte_eth_dev_close() releases all device level dynamic memory. Signed-off-by: Rastislav Cernay Acked-by: Jan Remes Reviewed-by: Xiaolong Ye --- v2: remove unnecessary cast drivers/net/szedata2/rte_eth_szedata2.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/net/szedata2/rte_eth_szedata2.c b/drivers/net/szedata2/rte_eth_szedata2.c index d5dec1b..99d5ca5 100644 --- a/drivers/net/szedata2/rte_eth_szedata2.c +++ b/drivers/net/szedata2/rte_eth_szedata2.c @@ -1157,12 +1157,15 @@ struct szedata2_tx_queue { static void eth_dev_close(struct rte_eth_dev *dev) { + struct pmd_internals *internals = dev->data->dev_private; uint16_t i; uint16_t nb_rx = dev->data->nb_rx_queues; uint16_t nb_tx = dev->data->nb_tx_queues; eth_dev_stop(dev); + free(internals->sze_dev_path); + for (i = 0; i < nb_rx; i++) { eth_rx_queue_release(dev->data->rx_queues[i]); dev->data->rx_queues[i] = NULL; @@ -1173,6 +1176,9 @@ struct szedata2_tx_queue { dev->data->tx_queues[i] = NULL; } dev->data->nb_tx_queues = 0; + + rte_free(dev->data->mac_addrs); + dev->data->mac_addrs = NULL; } static int @@ -1475,6 +1481,9 @@ struct szedata2_tx_queue { PMD_INIT_LOG(INFO, "Initializing eth_dev %s (driver %s)", data->name, RTE_STR(RTE_SZEDATA2_DRIVER_NAME)); + /* Let rte_eth_dev_close() release the port resources */ + dev->data->dev_flags |= RTE_ETH_DEV_CLOSE_REMOVE; + /* Fill internal private structure. */ internals->dev = dev; /* Get index of szedata2 device file and create path to device file */ @@ -1537,12 +1546,9 @@ struct szedata2_tx_queue { static int rte_szedata2_eth_dev_uninit(struct rte_eth_dev *dev) { - struct pmd_internals *internals = (struct pmd_internals *) - dev->data->dev_private; - PMD_INIT_FUNC_TRACE(); - free(internals->sze_dev_path); + eth_dev_close(dev); PMD_DRV_LOG(INFO, "%s device %s successfully uninitialized", RTE_STR(RTE_SZEDATA2_DRIVER_NAME), dev->data->name); -- 1.8.3.1