Message ID | 20190607193851.21914-9-marcelo.cerri@canonical.com |
---|---|
State | New |
Headers | show |
Series | LP: #1812123 - Upstream Commits Needed for DPDK on Azure | expand |
On Fri, Jun 07, 2019 at 04:38:42PM -0300, Marcelo Henrique Cerri wrote: > @@ -703,13 +704,14 @@ static int uio_mmap(struct file *filep, struct vm_area_struct *vma) > } > > switch (idev->info->mem[mi].memtype) { > - case UIO_MEM_PHYS: > - return uio_mmap_physical(vma); > - case UIO_MEM_LOGICAL: > - case UIO_MEM_VIRTUAL: > - return uio_mmap_logical(vma); > - default: > - return -EINVAL; > + case UIO_MEM_IOVA: > + case UIO_MEM_PHYS: > + return uio_mmap_physical(vma); > + case UIO_MEM_LOGICAL: > + case UIO_MEM_VIRTUAL: > + return uio_mmap_logical(vma); > + default: > + return -EINVAL; Something funky is going on with the indentation here.
diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c index ff04b7f8549f..ff695bdee0a7 100644 --- a/drivers/uio/uio.c +++ b/drivers/uio/uio.c @@ -656,7 +656,8 @@ static int uio_mmap_physical(struct vm_area_struct *vma) return -EINVAL; vma->vm_ops = &uio_physical_vm_ops; - vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); + if (idev->info->mem[mi].memtype == UIO_MEM_PHYS) + vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); /* * We cannot use the vm_iomap_memory() helper here, @@ -703,13 +704,14 @@ static int uio_mmap(struct file *filep, struct vm_area_struct *vma) } switch (idev->info->mem[mi].memtype) { - case UIO_MEM_PHYS: - return uio_mmap_physical(vma); - case UIO_MEM_LOGICAL: - case UIO_MEM_VIRTUAL: - return uio_mmap_logical(vma); - default: - return -EINVAL; + case UIO_MEM_IOVA: + case UIO_MEM_PHYS: + return uio_mmap_physical(vma); + case UIO_MEM_LOGICAL: + case UIO_MEM_VIRTUAL: + return uio_mmap_logical(vma); + default: + return -EINVAL; } } diff --git a/include/linux/uio_driver.h b/include/linux/uio_driver.h index 3c85c81b0027..afa0bed36650 100644 --- a/include/linux/uio_driver.h +++ b/include/linux/uio_driver.h @@ -131,6 +131,7 @@ extern void uio_event_notify(struct uio_info *info); #define UIO_MEM_PHYS 1 #define UIO_MEM_LOGICAL 2 #define UIO_MEM_VIRTUAL 3 +#define UIO_MEM_IOVA 4 /* defines for uio_port->porttype */ #define UIO_PORT_NONE 0