On Thu, Aug 08, 2019 at 10:46:36AM +0200, [email protected] wrote:
> --- a/drivers/usb/core/devio.c
> +++ b/drivers/usb/core/devio.c
> @@ -238,9 +238,14 @@ static int usbdev_mmap(struct file *file, struct 
> vm_area_struct *vma)
>       usbm->vma_use_count = 1;
>       INIT_LIST_HEAD(&usbm->memlist);
>  
> +#ifdef CONFIG_X86
>       if (remap_pfn_range(vma, vma->vm_start,
>                       virt_to_phys(usbm->mem) >> PAGE_SHIFT,
>                       size, vma->vm_page_prot) < 0) {
> +#else /* !CONFIG_X86 */
> +     if (dma_mmap_coherent(ps->dev->bus->sysdev, 
> +                     vma, mem, dma_handle, size) < 0) {
> +#endif /* !CONFIG_X86 */

Doing the dma_mmap_coherent unconditionally is the right thing here.
Gavin who is on Cc has been looking into that.

Note that you'll also need this patch which I'm going to send to Linus
this week before it properly works on x86:

http://git.infradead.org/users/hch/dma-mapping.git/commitdiff/197b3e665b82c6027be5c68a143233df7ce5224f

Reply via email to