On Fri, Sep 21, 2018 at 12:42:54AM +0530, Souptick Joarder wrote:
>               for (off = 0; off < size; off += PAGE_SIZE) {
>                       page = vmalloc_to_page(kcov->area + off);
> -                     if (vm_insert_page(vma, vma->vm_start + off, page))
> -                             WARN_ONCE(1, "vm_insert_page() failed");
> +                     if (vmf_insert_page(vma, vma->vm_start + off, page)
> +                                     != VM_FAULT_NOPAGE)
> +                             WARN_ONCE(1, "vmf_insert_page() failed");
>               }

I think this is the wrong approach (as well as being buggy).

We should have a vmalloc_insert_range() _or something similar_ that
replaces this entire loop.  That makes each _user_ simpler.  What you're
trying to do right now makes each user more complex, and that's the
wrong approach.

Reply via email to