Lines Matching refs:pm
997 struct pagemapread *pm) in add_to_pagemap() argument
999 pm->buffer[pm->pos++] = *pme; in add_to_pagemap()
1000 if (pm->pos >= pm->len) in add_to_pagemap()
1008 struct pagemapread *pm = walk->private; in pagemap_pte_hole() local
1014 pagemap_entry_t pme = make_pme(PM_NOT_PRESENT(pm->v2)); in pagemap_pte_hole()
1024 err = add_to_pagemap(addr, &pme, pm); in pagemap_pte_hole()
1034 pme.pme |= PM_STATUS2(pm->v2, __PM_SOFT_DIRTY); in pagemap_pte_hole()
1036 err = add_to_pagemap(addr, &pme, pm); in pagemap_pte_hole()
1045 static void pte_to_pagemap_entry(pagemap_entry_t *pme, struct pagemapread *pm, in pte_to_pagemap_entry() argument
1071 *pme = make_pme(PM_NOT_PRESENT(pm->v2) | PM_STATUS2(pm->v2, flags2)); in pte_to_pagemap_entry()
1080 *pme = make_pme(PM_PFRAME(frame) | PM_STATUS2(pm->v2, flags2) | flags); in pte_to_pagemap_entry()
1084 static void thp_pmd_to_pagemap_entry(pagemap_entry_t *pme, struct pagemapread *pm, in thp_pmd_to_pagemap_entry() argument
1094 | PM_STATUS2(pm->v2, pmd_flags2) | PM_PRESENT); in thp_pmd_to_pagemap_entry()
1096 *pme = make_pme(PM_NOT_PRESENT(pm->v2) | PM_STATUS2(pm->v2, pmd_flags2)); in thp_pmd_to_pagemap_entry()
1099 static inline void thp_pmd_to_pagemap_entry(pagemap_entry_t *pme, struct pagemapread *pm, in thp_pmd_to_pagemap_entry() argument
1109 struct pagemapread *pm = walk->private; in pagemap_pte_range() local
1128 thp_pmd_to_pagemap_entry(&pme, pm, *pmd, offset, pmd_flags2); in pagemap_pte_range()
1129 err = add_to_pagemap(addr, &pme, pm); in pagemap_pte_range()
1148 pte_to_pagemap_entry(&pme, pm, vma, addr, *pte); in pagemap_pte_range()
1149 err = add_to_pagemap(addr, &pme, pm); in pagemap_pte_range()
1161 static void huge_pte_to_pagemap_entry(pagemap_entry_t *pme, struct pagemapread *pm, in huge_pte_to_pagemap_entry() argument
1166 PM_STATUS2(pm->v2, flags2) | in huge_pte_to_pagemap_entry()
1169 *pme = make_pme(PM_NOT_PRESENT(pm->v2) | in huge_pte_to_pagemap_entry()
1170 PM_STATUS2(pm->v2, flags2)); in huge_pte_to_pagemap_entry()
1178 struct pagemapread *pm = walk->private; in pagemap_hugetlb_range() local
1191 huge_pte_to_pagemap_entry(&pme, pm, *pte, offset, flags2); in pagemap_hugetlb_range()
1192 err = add_to_pagemap(addr, &pme, pm); in pagemap_hugetlb_range()
1232 struct pagemapread pm; in pagemap_read() local
1253 pm.v2 = soft_dirty_cleared; in pagemap_read()
1254 pm.len = (PAGEMAP_WALK_SIZE >> PAGE_SHIFT); in pagemap_read()
1255 pm.buffer = kmalloc(pm.len * PM_ENTRY_BYTES, GFP_TEMPORARY); in pagemap_read()
1257 if (!pm.buffer) in pagemap_read()
1271 pagemap_walk.private = ± in pagemap_read()
1293 pm.pos = 0; in pagemap_read()
1303 len = min(count, PM_ENTRY_BYTES * pm.pos); in pagemap_read()
1304 if (copy_to_user(buf, pm.buffer, len)) { in pagemap_read()
1319 kfree(pm.buffer); in pagemap_read()