[dpdk-dev] [PATCH v2] net/tap: fix dev name look-up
Pascal Mazon
pascal.mazon at 6wind.com
Mon Mar 6 14:51:28 CET 2017
Store the device name in dev->data->name, to have symmetrical behavior
between rte_pmd_tap_probe(name) and rte_pmd_tap_remove(name).
The netdevice name (linux interface name) is stored in the name field of
struct pmd_internals.
There's no need to allocate an rte_eth_dev_data, as it is done in
rte_eth_dev_allocate()/rte_eth_dev_data_alloc().
Signed-off-by: Pascal Mazon <pascal.mazon at 6wind.com>
---
drivers/net/tap/rte_eth_tap.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index 47a706070652..839c4187a47f 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -651,23 +651,22 @@ eth_dev_tap_create(const char *name, char *tap_name)
RTE_LOG(DEBUG, PMD, " TAP device on numa %u\n", rte_socket_id());
- data = rte_zmalloc_socket(tap_name, sizeof(*data), 0, numa_node);
- if (!data) {
- RTE_LOG(ERR, PMD, "TAP Failed to allocate data\n");
- goto error_exit;
- }
-
pmd = rte_zmalloc_socket(tap_name, sizeof(*pmd), 0, numa_node);
if (!pmd) {
RTE_LOG(ERR, PMD, "TAP Unable to allocate internal struct\n");
goto error_exit;
}
- dev = rte_eth_dev_allocate(tap_name);
+ dev = rte_eth_dev_allocate(name);
if (!dev) {
RTE_LOG(ERR, PMD, "TAP Unable to allocate device struct\n");
goto error_exit;
}
+ data = dev->data;
+ if (!dev->data) {
+ RTE_LOG(ERR, PMD, "TAP Failed to allocate data\n");
+ goto error_exit;
+ }
snprintf(pmd->name, sizeof(pmd->name), "%s", tap_name);
@@ -686,12 +685,10 @@ eth_dev_tap_create(const char *name, char *tap_name)
data->nb_rx_queues = pmd->nb_queues;
data->nb_tx_queues = pmd->nb_queues;
- dev->data = data;
dev->dev_ops = &ops;
dev->driver = NULL;
dev->rx_pkt_burst = pmd_rx_burst;
dev->tx_pkt_burst = pmd_tx_burst;
- snprintf(dev->data->name, sizeof(dev->data->name), "%s", name);
/* Presetup the fds to -1 as being not valid */
for (i = 0; i < RTE_PMD_TAP_MAX_QUEUES; i++) {
--
2.8.0.rc0
More information about the dev
mailing list