DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: David Marchand <david.marchand@redhat.com>
To: dev@dpdk.org
Cc: thomas@monjalon.net, stephen@networkplumber.org,
	bruce.richardson@intel.com, fengchengwen@huawei.com,
	longli@microsoft.com, hemant.agrawal@nxp.com,
	Wei Hu <weh@microsoft.com>
Subject: [PATCH v2 09/10] bus/vmbus: store name in bus specific device
Date: Thu, 18 Jun 2026 17:28:24 +0200	[thread overview]
Message-ID: <20260618152826.490569-10-david.marchand@redhat.com> (raw)
In-Reply-To: <20260618152826.490569-1-david.marchand@redhat.com>

The device name is allocated with strdup() during scan and freed in
several places. However, when this bus cleanup is converted to use the
EAL generic helper, freeing the device object will require a custom
helper to also free the device name (and for this, a cast will be
needed).

Instead, add an embedded name array to rte_vmbus_device structure
(char name[RTE_DEV_NAME_MAX_LEN]) which is sufficient for all VMBUS
device names (UUID format: 36 characters, or shorter legacy format).

This simplifies the device freeing to a simple free() call.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/bus/vmbus/bus_vmbus_driver.h |  1 +
 drivers/bus/vmbus/linux/vmbus_bus.c  | 10 +++-------
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/bus/vmbus/bus_vmbus_driver.h b/drivers/bus/vmbus/bus_vmbus_driver.h
index 888d856141..706ff1fcf5 100644
--- a/drivers/bus/vmbus/bus_vmbus_driver.h
+++ b/drivers/bus/vmbus/bus_vmbus_driver.h
@@ -38,6 +38,7 @@ enum hv_uio_map {
  */
 struct rte_vmbus_device {
 	struct rte_device device;              /**< Inherit core device */
+	char name[RTE_DEV_NAME_MAX_LEN];       /**< VMBUS device name */
 	rte_uuid_t device_id;		       /**< VMBUS device id */
 	rte_uuid_t class_id;		       /**< VMBUS device type */
 	uint32_t relid;			       /**< id for primary */
diff --git a/drivers/bus/vmbus/linux/vmbus_bus.c b/drivers/bus/vmbus/linux/vmbus_bus.c
index 77d904ad6d..779ea50b92 100644
--- a/drivers/bus/vmbus/linux/vmbus_bus.c
+++ b/drivers/bus/vmbus/linux/vmbus_bus.c
@@ -280,15 +280,14 @@ vmbus_scan_one(const char *name)
 	char filename[PATH_MAX];
 	char dirname[PATH_MAX];
 	unsigned long tmp;
-	char *dev_name;
 
 	dev = calloc(1, sizeof(*dev));
 	if (dev == NULL)
 		return -1;
 
-	dev->device.name = dev_name = strdup(name);
-	if (!dev->device.name)
+	if (rte_strscpy(dev->name, name, sizeof(dev->name)) < 0)
 		goto error;
+	dev->device.name = dev->name;
 
 	/* sysfs base directory
 	 *   /sys/bus/vmbus/devices/7a08391f-f5a0-4ac0-9802-d13fd964f8df
@@ -305,7 +304,6 @@ vmbus_scan_one(const char *name)
 
 	/* skip non-network devices */
 	if (rte_uuid_compare(dev->class_id, vmbus_nic_uuid) != 0) {
-		free(dev_name);
 		free(dev);
 		return 0;
 	}
@@ -330,7 +328,7 @@ vmbus_scan_one(const char *name)
 		dev->monitor_id = UINT8_MAX;
 	}
 
-	dev->device.devargs = rte_bus_find_devargs(&rte_vmbus_bus, dev_name);
+	dev->device.devargs = rte_bus_find_devargs(&rte_vmbus_bus, dev->name);
 
 	dev->device.numa_node = SOCKET_ID_ANY;
 	if (vmbus_use_numa(dev)) {
@@ -360,7 +358,6 @@ vmbus_scan_one(const char *name)
 		} else { /* already registered */
 			VMBUS_LOG(NOTICE,
 				"%s already registered", name);
-			free(dev_name);
 			free(dev);
 		}
 		return 0;
@@ -371,7 +368,6 @@ vmbus_scan_one(const char *name)
 error:
 	VMBUS_LOG(DEBUG, "failed");
 
-	free(dev_name);
 	free(dev);
 	return -1;
 }
-- 
2.53.0


  parent reply	other threads:[~2026-06-18 15:29 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-11  9:45 [PATCH 00/13] Bus cleanup infrastructure and fixes David Marchand
2026-06-11  9:45 ` [PATCH 01/13] bus: fix reference to plug callback David Marchand
2026-06-11  9:45 ` [PATCH 02/13] dma/idxd: remove next pointer in bus specific device David Marchand
2026-06-11  9:45 ` [PATCH 03/13] bus/vdev: remove driver setting in probe David Marchand
2026-06-11  9:45 ` [PATCH 04/13] drivers/bus: cleanup device freeing in NXP bus David Marchand
2026-06-11  9:45 ` [PATCH 05/13] drivers/bus: allocate interrupt during probing " David Marchand
2026-06-11  9:45 ` [PATCH 06/13] bus/pci: fix mapping leak in bus cleanup David Marchand
2026-06-11  9:45 ` [PATCH 07/13] bus/vmbus: fix interrupt leak in cleanup David Marchand
2026-06-11  9:45 ` [PATCH 08/13] bus/vmbus: allocate interrupt during probing David Marchand
2026-06-15 19:13   ` [EXTERNAL] " Long Li
2026-06-11  9:45 ` [PATCH 09/13] bus: align unplug with device probe David Marchand
2026-06-11  9:45 ` [PATCH 10/13] bus: implement cleanup in EAL David Marchand
2026-06-11  9:45 ` [PATCH 11/13] bus/dpaa: support unplug David Marchand
2026-06-11  9:45 ` [PATCH 12/13] bus/vmbus: store name in bus specific device David Marchand
2026-06-11  9:45 ` [PATCH 13/13] bus/vmbus: support unplug David Marchand
2026-06-11 10:09 ` [PATCH 00/13] Bus cleanup infrastructure and fixes David Marchand
2026-06-15 19:14 ` [EXTERNAL] " Long Li
2026-06-15 23:55   ` Long Li
2026-06-16  6:55     ` David Marchand
2026-06-16  7:47       ` David Marchand
2026-06-17  9:16         ` Hemant Agrawal
2026-06-18  8:39           ` David Marchand
2026-06-18 15:28             ` David Marchand
2026-06-18 15:28 ` [PATCH v2 00/10] " David Marchand
2026-06-18 15:28   ` [PATCH v2 01/10] bus: fix reference to plug callback David Marchand
2026-06-22  9:49     ` Bruce Richardson
2026-06-18 15:28   ` [PATCH v2 02/10] dma/idxd: remove next pointer in bus specific device David Marchand
2026-06-22  9:48     ` Bruce Richardson
2026-06-18 15:28   ` [PATCH v2 03/10] bus/vdev: remove driver setting in probe David Marchand
2026-06-18 15:28   ` [PATCH v2 04/10] bus/pci: fix mapping leak in bus cleanup David Marchand
2026-06-18 15:28   ` [PATCH v2 05/10] bus/vmbus: fix interrupt leak in cleanup David Marchand
2026-06-19 22:04     ` [EXTERNAL] " Long Li
2026-06-18 15:28   ` [PATCH v2 06/10] bus/vmbus: allocate interrupt during probing David Marchand
2026-06-19 22:05     ` [EXTERNAL] " Long Li
2026-06-18 15:28   ` [PATCH v2 07/10] bus: align unplug with device probe David Marchand
2026-06-22 10:19     ` Bruce Richardson
2026-06-22 12:44       ` David Marchand
2026-06-18 15:28   ` [PATCH v2 08/10] bus: implement cleanup in EAL David Marchand
2026-06-22 10:26     ` Bruce Richardson
2026-06-18 15:28   ` David Marchand [this message]
2026-06-22 10:28     ` [PATCH v2 09/10] bus/vmbus: store name in bus specific device Bruce Richardson
2026-06-18 15:28   ` [PATCH v2 10/10] bus/vmbus: support unplug David Marchand
2026-06-23 10:54 ` [PATCH v3 00/11] Bus cleanup infrastructure and fixes David Marchand
2026-06-23 10:54   ` [PATCH v3 01/11] bus: fix reference to plug callback David Marchand
2026-06-23 10:54   ` [PATCH v3 02/11] dma/idxd: remove next pointer in bus specific device David Marchand
2026-06-23 10:54   ` [PATCH v3 03/11] bus/vdev: remove driver setting in probe David Marchand
2026-06-23 10:54   ` [PATCH v3 04/11] bus/pci: fix mapping leak in bus cleanup David Marchand
2026-06-23 10:54   ` [PATCH v3 05/11] bus/vmbus: fix interrupt leak in cleanup David Marchand
2026-06-23 10:54   ` [PATCH v3 06/11] bus/vmbus: allocate interrupt during probing David Marchand
2026-06-23 10:54   ` [PATCH v3 07/11] bus/ifpga: " David Marchand
2026-06-23 11:25     ` Bruce Richardson
2026-06-23 10:54   ` [PATCH v3 08/11] bus: align unplug with device probe David Marchand
2026-06-23 10:54   ` [PATCH v3 09/11] bus: implement cleanup in EAL David Marchand
2026-06-23 10:54   ` [PATCH v3 10/11] bus/vmbus: store name in bus specific device David Marchand
2026-06-23 10:54   ` [PATCH v3 11/11] bus/vmbus: support unplug David Marchand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260618152826.490569-10-david.marchand@redhat.com \
    --to=david.marchand@redhat.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=fengchengwen@huawei.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=longli@microsoft.com \
    --cc=stephen@networkplumber.org \
    --cc=thomas@monjalon.net \
    --cc=weh@microsoft.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox