Lines Matching refs:pmdp
172 static void init_pte(pmd_t *pmdp, unsigned long addr, unsigned long end,
177 ptep = pte_set_fixmap_offset(pmdp, addr);
196 static void alloc_init_cont_pte(pmd_t *pmdp, unsigned long addr,
203 pmd_t pmd = READ_ONCE(*pmdp);
214 __pmd_populate(pmdp, pte_phys, pmdval);
215 pmd = READ_ONCE(*pmdp);
229 init_pte(pmdp, addr, next, phys, __prot);
240 pmd_t *pmdp;
242 pmdp = pmd_set_fixmap_offset(pudp, addr);
244 pmd_t old_pmd = READ_ONCE(*pmdp);
251 pmd_set_huge(pmdp, phys, prot);
258 READ_ONCE(pmd_val(*pmdp))));
260 alloc_init_cont_pte(pmdp, addr, next, phys, prot,
264 pmd_val(old_pmd) != READ_ONCE(pmd_val(*pmdp)));
267 } while (pmdp++, addr = next, addr != end);
849 static void unmap_hotplug_pte_range(pmd_t *pmdp, unsigned long addr,
856 ptep = pte_offset_kernel(pmdp, addr);
875 pmd_t *pmdp, pmd;
879 pmdp = pmd_offset(pudp, addr);
880 pmd = READ_ONCE(*pmdp);
886 pmd_clear(pmdp);
899 unmap_hotplug_pte_range(pmdp, addr, next, free_mapped, altmap);
981 static void free_empty_pte_table(pmd_t *pmdp, unsigned long addr,
989 ptep = pte_offset_kernel(pmdp, addr);
1007 ptep = pte_offset_kernel(pmdp, 0UL);
1013 pmd_clear(pmdp);
1022 pmd_t *pmdp, pmd;
1027 pmdp = pmd_offset(pudp, addr);
1028 pmd = READ_ONCE(*pmdp);
1033 free_empty_pte_table(pmdp, addr, next, floor, ceiling);
1047 pmdp = pmd_offset(pudp, 0UL);
1049 if (!pmd_none(READ_ONCE(pmdp[i])))
1055 free_hotplug_pgtable_page(virt_to_page(pmdp));
1136 void __meminit vmemmap_set_pmd(pmd_t *pmdp, void *p, int node,
1139 pmd_set_huge(pmdp, __pa(p), __pgprot(PROT_SECT_NORMAL));
1142 int __meminit vmemmap_check_pmd(pmd_t *pmdp, int node,
1145 vmemmap_verify((pte_t *)pmdp, node, addr, next);
1185 int pmd_set_huge(pmd_t *pmdp, phys_addr_t phys, pgprot_t prot)
1190 if (!pgattr_change_is_safe(READ_ONCE(pmd_val(*pmdp)),
1195 set_pmd(pmdp, new_pmd);
1207 int pmd_clear_huge(pmd_t *pmdp)
1209 if (!pmd_sect(READ_ONCE(*pmdp)))
1211 pmd_clear(pmdp);
1215 int pmd_free_pte_page(pmd_t *pmdp, unsigned long addr)
1220 pmd = READ_ONCE(*pmdp);
1227 table = pte_offset_kernel(pmdp, addr);
1228 pmd_clear(pmdp);
1237 pmd_t *pmdp;
1249 pmdp = table;
1253 pmd_free_pte_page(pmdp, next);
1254 } while (pmdp++, next += PMD_SIZE, next != end);