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.