11 #include <linux/sched.h>
15 #include <asm/pgtable.h>
84 #elif defined(CONFIG_SUPERH64)
98 pte_t pte = gup_get_pte(ptep);
101 if ((
pte_val(pte) & mask) != result) {
111 }
while (ptep++, addr +=
PAGE_SIZE, addr != end);
117 static int gup_pmd_range(
pud_t pud,
unsigned long addr,
unsigned long end,
118 int write,
struct page **pages,
int *nr)
130 if (!gup_pte_range(pmd, addr, next, write, pages, nr))
132 }
while (pmdp++, addr = next, addr != end);
137 static int gup_pud_range(
pgd_t pgd,
unsigned long addr,
unsigned long end,
138 int write,
struct page **pages,
int *nr)
150 if (!gup_pmd_range(pud, addr, next, write, pages, nr))
152 }
while (pudp++, addr = next, addr != end);
176 (
void __user *)start, len)))
188 next = pgd_addr_end(addr, end);
191 if (!gup_pud_range(pgd, addr, next, write, pages, &nr))
193 }
while (pgdp++, addr = next, addr != end);
237 next = pgd_addr_end(addr, end);
240 if (!gup_pud_range(pgd, addr, next, write, pages, &nr))
242 }
while (pgdp++, addr = next, addr != end);
260 (end - start) >> PAGE_SHIFT, write, 0, pages,
NULL);