devargs: unify scratch buffer storage
[dpdk.git] / lib / librte_eal / common / eal_common_dev.c
index 8a3bd31..148a238 100644 (file)
@@ -185,10 +185,8 @@ local_dev_probe(const char *devargs, struct rte_device **new_dev)
        return ret;
 
 err_devarg:
-       if (rte_devargs_remove(da) != 0) {
-               free(da->args);
-               free(da);
-       }
+       if (rte_devargs_remove(da) != 0)
+               rte_devargs_reset(da);
        return ret;
 }
 
@@ -586,7 +584,8 @@ rte_dev_iterator_init(struct rte_dev_iterator *it,
        it->bus_str = NULL;
        it->cls_str = NULL;
 
-       devargs.data = dev_str;
+       /* Setting data field implies no malloc in parsing. */
+       devargs.data = (void *)(intptr_t)dev_str;
        if (rte_devargs_layers_parse(&devargs, dev_str))
                goto get_out;