diff options
Diffstat (limited to 'vnet')
-rw-r--r-- | vnet/vnet/devices/dpdk/dpdk.h | 1 | ||||
-rw-r--r-- | vnet/vnet/devices/dpdk/init.c | 5 |
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 */ |