dpdk: move DPDK vfio hack to dpdk plugin
[vpp.git] / src / vlib / linux / physmem.c
index f60a6f7..1a44992 100644 (file)
@@ -114,7 +114,7 @@ unix_physmem_region_alloc (vlib_main_t * vm, char *name, u32 size,
                           u8 numa_node, u32 flags,
                           vlib_physmem_region_index_t * idx)
 {
-  vlib_physmem_main_t *vpm = &vm->physmem_main;
+  vlib_physmem_main_t *vpm = &physmem_main;
   vlib_physmem_region_t *pr;
   clib_error_t *error = 0;
   clib_mem_vm_alloc_t alloc = { 0 };
@@ -174,14 +174,8 @@ unix_physmem_region_alloc (vlib_main_t * vm, char *name, u32 size,
        }
     }
 
-  if ((vpm->flags & VLIB_PHYSMEM_MAIN_F_HAVE_IOMMU) ||
-      (vpm->flags & VLIB_PHYSMEM_MAIN_F_HAVE_PAGEMAP) == 0)
-    for (i = 0; i < pr->n_pages; i++)
-      vec_add1 (pr->page_table, pointer_to_uword (pr->mem) +
-               i * (1 << pr->log2_page_size));
-  else
-    pr->page_table = clib_mem_vm_get_paddr (pr->mem, pr->log2_page_size,
-                                           pr->n_pages);
+  pr->page_table = clib_mem_vm_get_paddr (pr->mem, pr->log2_page_size,
+                                         pr->n_pages);
 
   linux_vfio_dma_map_regions (vm);
 
@@ -208,7 +202,7 @@ done:
 static void
 unix_physmem_region_free (vlib_main_t * vm, vlib_physmem_region_index_t idx)
 {
-  vlib_physmem_main_t *vpm = &vm->physmem_main;
+  vlib_physmem_main_t *vpm = &physmem_main;
   vlib_physmem_region_t *pr = vlib_physmem_get_region (vm, idx);
 
   if (pr->fd > 0)
@@ -221,8 +215,7 @@ unix_physmem_region_free (vlib_main_t * vm, vlib_physmem_region_index_t idx)
 clib_error_t *
 unix_physmem_init (vlib_main_t * vm)
 {
-  vlib_physmem_main_t *vpm = &vm->physmem_main;
-  linux_vfio_main_t *lvm = &vfio_main;
+  vlib_physmem_main_t *vpm = &physmem_main;
   clib_error_t *error = 0;
   u64 *pt = 0;
 
@@ -239,9 +232,6 @@ unix_physmem_init (vlib_main_t * vm)
   if ((error = linux_vfio_init (vm)))
     return error;
 
-  if (lvm->flags & LINUX_VFIO_F_HAVE_IOMMU)
-    vpm->flags |= VLIB_PHYSMEM_MAIN_F_HAVE_IOMMU;
-
   vm->os_physmem_alloc_aligned = unix_physmem_alloc_aligned;
   vm->os_physmem_free = unix_physmem_free;
   vm->os_physmem_region_alloc = unix_physmem_region_alloc;
@@ -254,7 +244,7 @@ static clib_error_t *
 show_physmem (vlib_main_t * vm,
              unformat_input_t * input, vlib_cli_command_t * cmd)
 {
-  vlib_physmem_main_t *vpm = &vm->physmem_main;
+  vlib_physmem_main_t *vpm = &physmem_main;
   vlib_physmem_region_t *pr;
 
   /* *INDENT-OFF* */