The process private data is local to the process and does not
have to come from global shared memory. Using malloc() gets more
coverage with tools and has better caching.

Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
---
 drivers/net/tap/rte_eth_tap.c | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index da45610665..650ddbd706 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -1109,7 +1109,8 @@ tap_dev_close(struct rte_eth_dev *dev)
        struct pmd_process_private *process_private = dev->process_private;
 
        if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
-               rte_free(dev->process_private);
+               free(dev->process_private);
+               dev->process_private = NULL;
                if (tap_devices_count == 1)
                        rte_mp_action_unregister(TAP_MP_REQ_START_RXTX);
                tap_devices_count--;
@@ -1170,7 +1171,9 @@ tap_dev_close(struct rte_eth_dev *dev)
                close(internals->ioctl_sock);
                internals->ioctl_sock = -1;
        }
-       rte_free(dev->process_private);
+       free(dev->process_private);
+       dev->process_private = NULL;
+
        if (tap_devices_count == 1)
                rte_mp_action_unregister(TAP_MP_KEY);
        tap_devices_count--;
@@ -1923,14 +1926,13 @@ eth_dev_tap_create(struct rte_vdev_device *vdev, const 
char *tap_name,
                goto error_exit_nodev;
        }
 
-       process_private = (struct pmd_process_private *)
-               rte_zmalloc_socket(tap_name, sizeof(struct pmd_process_private),
-                       RTE_CACHE_LINE_SIZE, dev->device->numa_node);
-
+       process_private = malloc(sizeof(struct pmd_process_private));
        if (process_private == NULL) {
                TAP_LOG(ERR, "Failed to alloc memory for process private");
                return -1;
        }
+       memset(process_private, 0, sizeof(struct pmd_process_private));
+
        pmd = dev->data->dev_private;
        dev->process_private = process_private;
        pmd->dev = dev;
@@ -2435,16 +2437,13 @@ rte_pmd_tap_probe(struct rte_vdev_device *dev)
                        TAP_LOG(ERR, "Primary process is missing");
                        return -1;
                }
-               eth_dev->process_private = (struct pmd_process_private *)
-                       rte_zmalloc_socket(name,
-                               sizeof(struct pmd_process_private),
-                               RTE_CACHE_LINE_SIZE,
-                               eth_dev->device->numa_node);
+               eth_dev->process_private = malloc(sizeof(struct 
pmd_process_private));
                if (eth_dev->process_private == NULL) {
                        TAP_LOG(ERR,
                                "Failed to alloc memory for process private");
                        return -1;
                }
+               memset(eth_dev->process_private, 0, sizeof(struct 
pmd_process_private));
 
                ret = tap_mp_attach_queues(name, eth_dev);
                if (ret != 0)
-- 
2.45.2

Reply via email to