On 11/4/19 12:33 PM, Jason Gunthorpe wrote: ...
diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c index 24244a2f68cc..c5a78d3e674b 100644 +++ b/drivers/infiniband/core/umem.c @@ -272,11 +272,10 @@ struct ib_umem *ib_umem_get(struct ib_udata *udata, unsigned long addr, while (npages) { down_read(&mm->mmap_sem);
ret = get_user_pages(cur_base,
ret = pin_longterm_pages(cur_base, min_t(unsigned long, npages, PAGE_SIZE / sizeof (struct page *)),
gup_flags | FOLL_LONGTERM,
page_list, NULL);
gup_flags, page_list, NULL);
FWIW, this one should be converted to fast as well, I think we finally got rid of all the blockers for that?
I'm not aware of any blockers on the gup.c end, anyway. The only broken thing we have there is "gup remote + FOLL_LONGTERM". But we can do "gup fast + LONGTERM".
Unless I'm really missing something, in which case several other call sites would need changes.
I'll change it to pin_longterm_pages_fast().
thanks,
John Hubbard NVIDIA