X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvlib%2Flinux%2Fvfio.c;h=621dfb2ce01cfb6e487e0b3935dbc0e49eeb0614;hb=51c52c0adc9bf79ca6508ee1327d3b972e80b5c6;hp=e39bf01fdc0449cf205b6afb63d8e78c1cc195b6;hpb=fef3f7bd0ae43586540533e7ee1a7cc910ccb16d;p=vpp.git diff --git a/src/vlib/linux/vfio.c b/src/vlib/linux/vfio.c index e39bf01fdc0..621dfb2ce01 100644 --- a/src/vlib/linux/vfio.c +++ b/src/vlib/linux/vfio.c @@ -73,7 +73,7 @@ map_regions (vlib_main_t * vm, int fd) int rv; dm.vaddr = pointer_to_uword (pr->mem) + (i << pr->log2_page_size); dm.size = 1 << pr->log2_page_size; - dm.iova = pr->page_table[i]; + dm.iova = dm.vaddr; if ((rv = ioctl (fd, VFIO_IOMMU_MAP_DMA, &dm))) return rv; } @@ -82,30 +82,6 @@ map_regions (vlib_main_t * vm, int fd) return 0; } -static clib_error_t * -scan_vfio_fd (void *arg, u8 * path_name, u8 * file_name) -{ - linux_vfio_main_t *lvm = &vfio_main; - const char fn[] = "/dev/vfio/vfio"; - char buff[sizeof (fn)] = { 0 }; - int fd; - u8 *path = format (0, "%v%c", path_name, 0); - - if (readlink ((char *) path, buff, sizeof (fn)) + 1 != sizeof (fn)) - goto done; - - if (strncmp (fn, buff, sizeof (fn))) - goto done; - - fd = atoi ((char *) file_name); - if (fd != lvm->container_fd) - lvm->ext_container_fd = atoi ((char *) file_name); - -done: - vec_free (path); - return 0; -} - void linux_vfio_dma_map_regions (vlib_main_t * vm) { @@ -113,12 +89,6 @@ linux_vfio_dma_map_regions (vlib_main_t * vm) if (lvm->container_fd != -1) map_regions (vm, lvm->container_fd); - - if (lvm->ext_container_fd == -1) - foreach_directory_file ("/proc/self/fd", scan_vfio_fd, 0, 0); - - if (lvm->ext_container_fd != -1) - map_regions (vm, lvm->ext_container_fd); } static linux_pci_vfio_iommu_group_t * @@ -252,8 +222,6 @@ linux_vfio_init (vlib_main_t * vm) linux_vfio_main_t *lvm = &vfio_main; int fd; - lvm->ext_container_fd = -1; - fd = open ("/dev/vfio/vfio", O_RDWR); /* check if iommu is available */