Lines Matching refs:pmdp
83 static int walk_pte_level(pmd_t *pmdp, unsigned long addr, unsigned long end,
88 ptep = pte_offset_kernel(pmdp, addr);
109 static int split_pmd_page(pmd_t *pmdp, unsigned long addr)
119 pte_addr = pmd_pfn(*pmdp) << PAGE_SHIFT;
120 ro = !!(pmd_val(*pmdp) & _SEGMENT_ENTRY_PROTECT);
121 nx = !!(pmd_val(*pmdp) & _SEGMENT_ENTRY_NOEXEC);
132 pgt_set((unsigned long *)pmdp, pmd_val(new), addr, CRDTE_DTT_SEGMENT);
138 static void modify_pmd_page(pmd_t *pmdp, unsigned long addr,
141 pmd_t new = *pmdp;
151 pgt_set((unsigned long *)pmdp, pmd_val(new), addr, CRDTE_DTT_SEGMENT);
158 pmd_t *pmdp;
161 pmdp = pmd_offset(pudp, addr);
163 if (pmd_none(*pmdp))
166 if (pmd_large(*pmdp)) {
168 rc = split_pmd_page(pmdp, addr);
173 modify_pmd_page(pmdp, addr, flags);
175 rc = walk_pte_level(pmdp, addr, next, flags);
179 pmdp++;
189 pmd_t *pm_dir, *pmdp;
202 pmdp = pm_dir;
204 pmd_val(*pmdp) = pmd_addr | prot;
206 pmdp++;