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;
}
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;