summaryrefslogtreecommitdiffstats
path: root/vnet
diff options
context:
space:
mode:
Diffstat (limited to 'vnet')
-rw-r--r--vnet/vnet/devices/dpdk/dpdk.h1
-rw-r--r--vnet/vnet/devices/dpdk/init.c5
2 files changed, 6 insertions, 0 deletions
diff --git a/vnet/vnet/devices/dpdk/dpdk.h b/vnet/vnet/devices/dpdk/dpdk.h
index 2dab4effb7a..2a9d825e04d 100644
--- a/vnet/vnet/devices/dpdk/dpdk.h
+++ b/vnet/vnet/devices/dpdk/dpdk.h
@@ -322,6 +322,7 @@ typedef struct {
/* Config stuff */
u8 ** eal_init_args;
+ u8 * eal_init_args_str;
u8 * eth_if_blacklist;
u8 * eth_if_whitelist;
u8 * uio_driver_name;
diff --git a/vnet/vnet/devices/dpdk/init.c b/vnet/vnet/devices/dpdk/init.c
index 28a661f58e2..db0b8384dd9 100644
--- a/vnet/vnet/devices/dpdk/init.c
+++ b/vnet/vnet/devices/dpdk/init.c
@@ -1436,6 +1436,11 @@ dpdk_config (vlib_main_t * vm, unformat_input_t * input)
vm = dm->vlib_main;
+ /* make copy of args as rte_eal_init tends to mess up with arg array */
+ for (i = 1; i < vec_len(dm->eal_init_args); i++)
+ dm->eal_init_args_str = format(dm->eal_init_args_str, "%s ",
+ dm->eal_init_args[i]);
+
ret = rte_eal_init(vec_len(dm->eal_init_args), (char **) dm->eal_init_args);
/* lazy umount hugepages */