summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/dpdk/main.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/plugins/dpdk/main.c b/src/plugins/dpdk/main.c
index e570cfb4d97..ea0348a5e7f 100644
--- a/src/plugins/dpdk/main.c
+++ b/src/plugins/dpdk/main.c
@@ -105,7 +105,6 @@ dpdk_early_init (vlib_main_t *vm)
int fd = -1;
u64 *pt = 0;
clib_error_t *err = 0;
- clib_mem_vm_alloc_t alloc = { 0 };
/* check if pagemap is accessible - if we get zero result
dpdk will not be able to get physical memory address and game is over
@@ -125,19 +124,18 @@ dpdk_early_init (vlib_main_t *vm)
goto error;
check_hugetlb:
- alloc.flags = CLIB_MEM_VM_F_SHARED | CLIB_MEM_VM_F_HUGETLB | CLIB_MEM_VM_F_HUGETLB_PREALLOC;
- alloc.size = 1;
- alloc.name = "dpdk_early_init";
+ fd = clib_mem_vm_create_fd (CLIB_MEM_PAGE_SZ_DEFAULT_HUGE,
+ "dpdk early init");
- if ((err = clib_mem_vm_ext_alloc (&alloc)))
+ if (fd != -1)
{
- clib_error_free (err);
- goto error;
+ u8 *page = clib_mem_vm_map_shared (0, 1, fd, 0, "dpdk_early_init");
+ if (page != CLIB_MEM_VM_MAP_FAILED)
+ {
+ clib_mem_vm_unmap (page);
+ goto done;
+ }
}
- else
- clib_mem_vm_ext_free (&alloc);
-
- goto done;
error:
err = clib_error_return (0, "access to physical devices is not allowed");