···558558 ret = pin_user_pages_remote(mm, vaddr, npages, flags | FOLL_LONGTERM,559559 pages, NULL, NULL);560560 if (ret > 0) {561561+ int i;562562+563563+ /*564564+ * The zero page is always resident, we don't need to pin it565565+ * and it falls into our invalid/reserved test so we don't566566+ * unpin in put_pfn(). Unpin all zero pages in the batch here.567567+ */568568+ for (i = 0 ; i < ret; i++) {569569+ if (unlikely(is_zero_pfn(page_to_pfn(pages[i]))))570570+ unpin_user_page(pages[i]);571571+ }572572+561573 *pfn = page_to_pfn(pages[0]);562574 goto done;563575 }