On Wed, Oct 07, 2020 at 06:44:18PM +0200, Daniel Vetter wrote:
>  
> -     /*
> -      * While get_vaddr_frames() could be used for transient (kernel
> -      * controlled lifetime) pinning of memory pages all current
> -      * users establish long term (userspace controlled lifetime)
> -      * page pinning. Treat get_vaddr_frames() like
> -      * get_user_pages_longterm() and disallow it for filesystem-dax
> -      * mappings.
> -      */
> -     if (vma_is_fsdax(vma)) {
> -             ret = -EOPNOTSUPP;
> -             goto out;
> -     }
> -
> -     if (!(vma->vm_flags & (VM_IO | VM_PFNMAP))) {
> -             vec->got_ref = true;
> -             vec->is_pfns = false;
> -             ret = pin_user_pages_locked(start, nr_frames,
> -                     gup_flags, (struct page **)(vec->ptrs), &locked);
> -             goto out;
> -     }

The vm_flags still need to be checked before going into the while
loop. If the break is taken then nothing would check vm_flags

Jason
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to