Symbol: pmd
arch/alpha/include/asm/page.h
26
typedef struct { unsigned long pmd; } pmd_t;
arch/alpha/include/asm/page.h
31
#define pmd_val(x) ((x).pmd)
arch/alpha/include/asm/pgalloc.h
17
pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte)
arch/alpha/include/asm/pgalloc.h
19
pmd_set(pmd, (pte_t *)(page_to_pa(pte) + PAGE_OFFSET));
arch/alpha/include/asm/pgalloc.h
23
pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte)
arch/alpha/include/asm/pgalloc.h
25
pmd_set(pmd, pte);
arch/alpha/include/asm/pgalloc.h
29
pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
arch/alpha/include/asm/pgalloc.h
31
pud_set(pud, pmd);
arch/alpha/include/asm/pgtable.h
191
pmd_page_vaddr(pmd_t pmd)
arch/alpha/include/asm/pgtable.h
193
return ((pmd_val(pmd) & _PFN_MASK) >> (32-PAGE_SHIFT)) + PAGE_OFFSET;
arch/alpha/include/asm/pgtable.h
196
#define pmd_pfn(pmd) (pmd_val(pmd) >> 32)
arch/alpha/include/asm/pgtable.h
197
#define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> 32))
arch/alpha/include/asm/pgtable.h
212
extern inline int pmd_none(pmd_t pmd) { return !pmd_val(pmd); }
arch/alpha/include/asm/pgtable.h
213
extern inline int pmd_bad(pmd_t pmd) { return (pmd_val(pmd) & ~_PFN_MASK) != _PAGE_TABLE; }
arch/alpha/include/asm/pgtable.h
214
extern inline int pmd_present(pmd_t pmd) { return pmd_val(pmd) & _PAGE_VALID; }
arch/alpha/include/asm/tlb.h
8
#define __pmd_free_tlb(tlb, pmd, address) tlb_remove_ptdesc((tlb), virt_to_ptdesc(pmd))
arch/alpha/mm/init.c
123
pmd_t *pmd;
arch/alpha/mm/init.c
164
pmd = pmd_offset(pud, VMALLOC_START);
arch/alpha/mm/init.c
165
pmd_set(pmd, (pte_t *)(two_pages + PAGE_SIZE));
arch/alpha/mm/init.c
193
if (pmd != pmd_offset(pud, vaddr)) {
arch/alpha/mm/init.c
195
pmd = pmd_offset(pud, vaddr);
arch/alpha/mm/init.c
196
pmd_set(pmd, (pte_t *)kernel_end);
arch/alpha/mm/init.c
199
set_pte(pte_offset_kernel(pmd, vaddr),
arch/arc/include/asm/hugepage.h
20
static inline pte_t pmd_pte(pmd_t pmd)
arch/arc/include/asm/hugepage.h
22
return __pte(pmd_val(pmd));
arch/arc/include/asm/hugepage.h
30
#define pmd_wrprotect(pmd) pte_pmd(pte_wrprotect(pmd_pte(pmd)))
arch/arc/include/asm/hugepage.h
31
#define pmd_mkwrite_novma(pmd) pte_pmd(pte_mkwrite_novma(pmd_pte(pmd)))
arch/arc/include/asm/hugepage.h
32
#define pmd_mkdirty(pmd) pte_pmd(pte_mkdirty(pmd_pte(pmd)))
arch/arc/include/asm/hugepage.h
33
#define pmd_mkold(pmd) pte_pmd(pte_mkold(pmd_pte(pmd)))
arch/arc/include/asm/hugepage.h
34
#define pmd_mkyoung(pmd) pte_pmd(pte_mkyoung(pmd_pte(pmd)))
arch/arc/include/asm/hugepage.h
35
#define pmd_mkhuge(pmd) pte_pmd(pte_mkhuge(pmd_pte(pmd)))
arch/arc/include/asm/hugepage.h
36
#define pmd_mkinvalid(pmd) pte_pmd(pte_mknotpresent(pmd_pte(pmd)))
arch/arc/include/asm/hugepage.h
37
#define pmd_mkclean(pmd) pte_pmd(pte_mkclean(pmd_pte(pmd)))
arch/arc/include/asm/hugepage.h
39
#define pmd_write(pmd) pte_write(pmd_pte(pmd))
arch/arc/include/asm/hugepage.h
40
#define pmd_young(pmd) pte_young(pmd_pte(pmd))
arch/arc/include/asm/hugepage.h
41
#define pmd_dirty(pmd) pte_dirty(pmd_pte(pmd))
arch/arc/include/asm/hugepage.h
43
#define pmd_trans_huge(pmd) (pmd_val(pmd) & _PAGE_HW_SZ)
arch/arc/include/asm/hugepage.h
47
static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
arch/arc/include/asm/hugepage.h
53
return __pmd((pmd_val(pmd) & (_PAGE_CHG_MASK | _PAGE_HW_SZ)) | pgprot_val(newprot));
arch/arc/include/asm/hugepage.h
57
pmd_t *pmdp, pmd_t pmd)
arch/arc/include/asm/hugepage.h
59
*pmdp = pmd;
arch/arc/include/asm/hugepage.h
63
pmd_t *pmd);
arch/arc/include/asm/page.h
60
unsigned long pmd;
arch/arc/include/asm/page.h
63
#define pmd_val(x) ((x).pmd)
arch/arc/include/asm/pgalloc.h
37
pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte)
arch/arc/include/asm/pgalloc.h
46
set_pmd(pmd, __pmd((unsigned long)pte));
arch/arc/include/asm/pgalloc.h
49
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte_page)
arch/arc/include/asm/pgalloc.h
51
set_pmd(pmd, __pmd((unsigned long)page_address(pte_page)));
arch/arc/include/asm/pgalloc.h
75
#define __pud_free_tlb(tlb, pmd, addr) pud_free((tlb)->mm, pmd)
arch/arc/include/asm/pgalloc.h
86
#define __pmd_free_tlb(tlb, pmd, addr) pmd_free((tlb)->mm, pmd)
arch/arc/include/asm/pgtable-levels.h
143
#define pmd_pfn(pmd) ((pmd_val(pmd) & PMD_MASK) >> PAGE_SHIFT)
arch/arc/include/asm/pgtable-levels.h
159
#define pmd_page_vaddr(pmd) (pmd_val(pmd) & PAGE_MASK)
arch/arc/include/asm/pgtable-levels.h
160
#define pmd_pfn(pmd) ((pmd_val(pmd) & PAGE_MASK) >> PAGE_SHIFT)
arch/arc/include/asm/pgtable-levels.h
161
#define pmd_page(pmd) virt_to_page((void *)pmd_page_vaddr(pmd))
arch/arc/include/asm/pgtable-levels.h
162
#define set_pmd(pmdp, pmd) (*(pmdp) = pmd)
arch/arc/include/asm/pgtable-levels.h
163
#define pmd_pgtable(pmd) ((pgtable_t) pmd_page(pmd))
arch/arc/mm/fault.c
35
pmd_t *pmd, *pmd_k;
arch/arc/mm/fault.c
59
pmd = pmd_offset(pud, address);
arch/arc/mm/fault.c
63
if (!pmd_present(*pmd))
arch/arc/mm/fault.c
64
set_pmd(pmd, *pmd_k);
arch/arc/mm/tlb.c
531
pmd_t *pmd)
arch/arc/mm/tlb.c
533
pte_t pte = __pte(pmd_val(*pmd));
arch/arm/include/asm/kfence.h
11
static inline int split_pmd_page(pmd_t *pmd, unsigned long addr)
arch/arm/include/asm/kfence.h
22
pmd_populate_kernel(&init_mm, pmd, pte);
arch/arm/include/asm/kfence.h
31
pmd_t *pmd;
arch/arm/include/asm/kfence.h
35
pmd = pmd_off_k(addr);
arch/arm/include/asm/kfence.h
37
if (pmd_leaf(*pmd)) {
arch/arm/include/asm/kfence.h
38
if (split_pmd_page(pmd, addr & PMD_MASK))
arch/arm/include/asm/pgalloc.h
26
static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
arch/arm/include/asm/pgalloc.h
28
set_pud(pud, __pud(__pa(pmd) | PMD_TYPE_TABLE));
arch/arm/include/asm/pgalloc.h
38
#define pmd_free(mm, pmd) do { } while (0)
arch/arm/include/asm/pgalloc.h
41
#define pud_populate(mm,pmd,pte) do { } while (0)
arch/arm/include/asm/pgalloc.h
43
#define pud_populate(mm,pmd,pte) BUG()
arch/arm/include/asm/pgtable-2level-types.h
22
typedef struct { pmdval_t pmd; } pmd_t;
arch/arm/include/asm/pgtable-2level-types.h
27
#define pmd_val(x) ((x).pmd)
arch/arm/include/asm/pgtable-2level.h
214
#define pmd_pfn(pmd) (__phys_to_pfn(pmd_val(pmd) & PHYS_MASK))
arch/arm/include/asm/pgtable-2level.h
216
#define pmd_leaf(pmd) (pmd_val(pmd) & PMD_TYPE_SECT)
arch/arm/include/asm/pgtable-2level.h
217
#define pmd_bad(pmd) pmd_leaf(pmd)
arch/arm/include/asm/pgtable-2level.h
218
#define pmd_present(pmd) (pmd_val(pmd))
arch/arm/include/asm/pgtable-2level.h
243
#define pmd_hugewillfault(pmd) (0)
arch/arm/include/asm/pgtable-3level-types.h
25
typedef struct { pmdval_t pmd; } pmd_t;
arch/arm/include/asm/pgtable-3level-types.h
30
#define pmd_val(x) ((x).pmd)
arch/arm/include/asm/pgtable-3level.h
117
#define pmd_table(pmd) ((pmd_val(pmd) & PMD_TYPE_MASK) == \
arch/arm/include/asm/pgtable-3level.h
119
#define pmd_sect(pmd) ((pmd_val(pmd) & PMD_TYPE_MASK) == \
arch/arm/include/asm/pgtable-3level.h
121
#define pmd_leaf(pmd) pmd_sect(pmd)
arch/arm/include/asm/pgtable-3level.h
140
#define pmd_bad(pmd) (!(pmd_val(pmd) & PMD_TABLE_BIT))
arch/arm/include/asm/pgtable-3level.h
176
#define pmd_isset(pmd, val) ((u32)(val) == (val) ? pmd_val(pmd) & (val) \
arch/arm/include/asm/pgtable-3level.h
177
: !!(pmd_val(pmd) & (val)))
arch/arm/include/asm/pgtable-3level.h
178
#define pmd_isclear(pmd, val) (!(pmd_val(pmd) & (val)))
arch/arm/include/asm/pgtable-3level.h
180
#define pmd_present(pmd) (pmd_isset((pmd), L_PMD_SECT_VALID))
arch/arm/include/asm/pgtable-3level.h
181
#define pmd_young(pmd) (pmd_isset((pmd), PMD_SECT_AF))
arch/arm/include/asm/pgtable-3level.h
189
#define pmd_write(pmd) (pmd_isclear((pmd), L_PMD_SECT_RDONLY))
arch/arm/include/asm/pgtable-3level.h
190
#define pmd_dirty(pmd) (pmd_isset((pmd), L_PMD_SECT_DIRTY))
arch/arm/include/asm/pgtable-3level.h
192
#define pmd_hugewillfault(pmd) (!pmd_young(pmd) || !pmd_write(pmd))
arch/arm/include/asm/pgtable-3level.h
195
#define pmd_trans_huge(pmd) (pmd_val(pmd) && !pmd_table(pmd))
arch/arm/include/asm/pgtable-3level.h
199
static inline pmd_t pmd_##fn(pmd_t pmd) { pmd_val(pmd) op; return pmd; }
arch/arm/include/asm/pgtable-3level.h
208
#define pmd_mkhuge(pmd) (__pmd(pmd_val(pmd) & ~PMD_TABLE_BIT))
arch/arm/include/asm/pgtable-3level.h
210
#define pmd_pfn(pmd) (((pmd_val(pmd) & PMD_MASK) & PHYS_MASK) >> PAGE_SHIFT)
arch/arm/include/asm/pgtable-3level.h
217
static inline pmd_t pmd_mkinvalid(pmd_t pmd)
arch/arm/include/asm/pgtable-3level.h
219
return __pmd(pmd_val(pmd) & ~L_PMD_SECT_VALID);
arch/arm/include/asm/pgtable-3level.h
222
static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
arch/arm/include/asm/pgtable-3level.h
226
pmd_val(pmd) = (pmd_val(pmd) & ~mask) | (pgprot_val(newprot) & mask);
arch/arm/include/asm/pgtable-3level.h
227
return pmd;
arch/arm/include/asm/pgtable-3level.h
231
pmd_t *pmdp, pmd_t pmd)
arch/arm/include/asm/pgtable-3level.h
236
if (pmd_val(pmd) & L_PMD_SECT_NONE)
arch/arm/include/asm/pgtable-3level.h
237
pmd_val(pmd) &= ~L_PMD_SECT_VALID;
arch/arm/include/asm/pgtable-3level.h
239
if (pmd_write(pmd) && pmd_dirty(pmd))
arch/arm/include/asm/pgtable-3level.h
240
pmd_val(pmd) &= ~PMD_SECT_AP2;
arch/arm/include/asm/pgtable-3level.h
242
pmd_val(pmd) |= PMD_SECT_AP2;
arch/arm/include/asm/pgtable-3level.h
244
*pmdp = __pmd(pmd_val(pmd) | PMD_SECT_nG);
arch/arm/include/asm/pgtable.h
158
#define pmd_none(pmd) (!pmd_val(pmd))
arch/arm/include/asm/pgtable.h
160
static inline pte_t *pmd_page_vaddr(pmd_t pmd)
arch/arm/include/asm/pgtable.h
162
return __va(pmd_val(pmd) & PHYS_MASK & (s32)PAGE_MASK);
arch/arm/include/asm/pgtable.h
165
#define pmd_page(pmd) pfn_to_page(__phys_to_pfn(pmd_val(pmd) & PHYS_MASK))
arch/arm/include/asm/pgtable.h
61
#define pmd_ERROR(pmd) __pmd_error(__FILE__, __LINE__, pmd)
arch/arm/include/asm/tlbflush.h
570
static inline void flush_pmd_entry(void *pmd)
arch/arm/include/asm/tlbflush.h
574
tlb_op(TLB_DCLEAN, "c7, c10, 1 @ flush_pmd", pmd);
arch/arm/include/asm/tlbflush.h
575
tlb_l2_op(TLB_L2CLEAN_FR, "c15, c9, 1 @ L2 flush_pmd", pmd);
arch/arm/include/asm/tlbflush.h
581
static inline void clean_pmd_entry(void *pmd)
arch/arm/include/asm/tlbflush.h
585
tlb_op(TLB_DCLEAN, "c7, c10, 1 @ flush_pmd", pmd);
arch/arm/include/asm/tlbflush.h
586
tlb_l2_op(TLB_L2CLEAN_FR, "c15, c9, 1 @ L2 flush_pmd", pmd);
arch/arm/include/asm/tlbflush.h
638
#define update_mmu_cache_pmd(vma, address, pmd) do { } while (0)
arch/arm/kernel/traps.c
762
void __pmd_error(const char *file, int line, pmd_t pmd)
arch/arm/kernel/traps.c
764
pr_err("%s:%d: bad pmd %08llx.\n", file, line, (long long)pmd_val(pmd));
arch/arm/lib/uaccess_with_memcpy.c
28
pmd_t *pmd;
arch/arm/lib/uaccess_with_memcpy.c
45
pmd = pmd_offset(pud, addr);
arch/arm/lib/uaccess_with_memcpy.c
46
if (unlikely(pmd_none(*pmd)))
arch/arm/lib/uaccess_with_memcpy.c
59
if (unlikely(pmd_leaf(*pmd))) {
arch/arm/lib/uaccess_with_memcpy.c
62
if (unlikely(!pmd_leaf(*pmd)
arch/arm/lib/uaccess_with_memcpy.c
63
|| pmd_hugewillfault(*pmd))) {
arch/arm/lib/uaccess_with_memcpy.c
73
if (unlikely(pmd_bad(*pmd)))
arch/arm/lib/uaccess_with_memcpy.c
76
pte = pte_offset_map_lock(current->mm, pmd, addr, &ptl);
arch/arm/mach-sa1100/assabet.c
606
pmd_t *pmd;
arch/arm/mach-sa1100/assabet.c
608
pmd = pmd_off_k(virt);
arch/arm/mach-sa1100/assabet.c
609
*pmd = __pmd(phys | prot);
arch/arm/mach-sa1100/assabet.c
610
flush_pmd_entry(pmd);
arch/arm/mm/dump.c
310
static void walk_pte(struct pg_state *st, pmd_t *pmd, unsigned long start,
arch/arm/mm/dump.c
313
pte_t *pte = pte_offset_kernel(pmd, 0);
arch/arm/mm/dump.c
323
static const char *get_domain_name(pmd_t *pmd)
arch/arm/mm/dump.c
326
switch (pmd_val(*pmd) & PMD_DOMAIN_MASK) {
arch/arm/mm/dump.c
344
pmd_t *pmd = pmd_offset(pud, 0);
arch/arm/mm/dump.c
349
for (i = 0; i < PTRS_PER_PMD; i++, pmd++) {
arch/arm/mm/dump.c
351
domain = get_domain_name(pmd);
arch/arm/mm/dump.c
352
if (pmd_none(*pmd) || pmd_leaf(*pmd) || !pmd_present(*pmd))
arch/arm/mm/dump.c
353
note_page(st, addr, 4, pmd_val(*pmd), domain);
arch/arm/mm/dump.c
355
walk_pte(st, pmd, addr, domain);
arch/arm/mm/dump.c
357
if (SECTION_SIZE < PMD_SIZE && pmd_leaf(pmd[1])) {
arch/arm/mm/dump.c
359
pmd++;
arch/arm/mm/dump.c
360
domain = get_domain_name(pmd);
arch/arm/mm/dump.c
361
note_page(st, addr, 4, pmd_val(*pmd), domain);
arch/arm/mm/fault-armv.c
108
if (unlikely(!pmd_same(pmdval, pmdp_get_lockless(pmd)))) {
arch/arm/mm/fault-armv.c
71
pmd_t *pmd;
arch/arm/mm/fault-armv.c
88
pmd = pmd_offset(pud, address);
arch/arm/mm/fault-armv.c
89
if (pmd_none_or_clear_bad(pmd))
arch/arm/mm/fault-armv.c
98
pte = pte_offset_map_rw_nolock(vma->vm_mm, pmd, address, &pmdval, &ptl);
arch/arm/mm/fault.c
511
pmd_t *pmd, *pmd_k;
arch/arm/mm/fault.c
54
pmd_t *pmd;
arch/arm/mm/fault.c
540
pmd = pmd_offset(pud, addr);
arch/arm/mm/fault.c
562
copy_pmd(pmd, pmd_k);
arch/arm/mm/fault.c
78
pmd = pmd_offset(pud, addr);
arch/arm/mm/fault.c
80
pr_cont(", *pmd=%08llx", (long long)pmd_val(*pmd));
arch/arm/mm/fault.c
82
if (pmd_none(*pmd))
arch/arm/mm/fault.c
85
if (pmd_bad(*pmd)) {
arch/arm/mm/fault.c
91
if (PageHighMem(pfn_to_page(pmd_val(*pmd) >> PAGE_SHIFT)))
arch/arm/mm/fault.c
94
pte = pte_offset_map(pmd, addr);
arch/arm/mm/idmap.c
27
pmd_t *pmd;
arch/arm/mm/idmap.c
31
pmd = pmd_alloc_one(&init_mm, addr);
arch/arm/mm/idmap.c
32
if (!pmd) {
arch/arm/mm/idmap.c
41
memcpy(pmd, pmd_offset(pud, 0),
arch/arm/mm/idmap.c
43
pud_populate(&init_mm, pud, pmd);
arch/arm/mm/idmap.c
44
pmd += pmd_index(addr);
arch/arm/mm/idmap.c
46
pmd = pmd_offset(pud, addr);
arch/arm/mm/idmap.c
50
*pmd = __pmd((addr & PMD_MASK) | prot);
arch/arm/mm/idmap.c
51
flush_pmd_entry(pmd);
arch/arm/mm/idmap.c
52
} while (pmd++, addr = next, addr != end);
arch/arm/mm/idmap.c
58
pmd_t *pmd = pmd_offset(pud, addr);
arch/arm/mm/idmap.c
61
pmd[0] = __pmd(addr);
arch/arm/mm/idmap.c
63
pmd[1] = __pmd(addr);
arch/arm/mm/idmap.c
64
flush_pmd_entry(pmd);
arch/arm/mm/init.c
314
pmd_t *pmd;
arch/arm/mm/init.c
316
pmd = pmd_offset(pud_offset(p4d_offset(pgd_offset(mm, addr), addr), addr), addr);
arch/arm/mm/init.c
319
pmd[0] = __pmd((pmd_val(pmd[0]) & mask) | prot);
arch/arm/mm/init.c
322
pmd[1] = __pmd((pmd_val(pmd[1]) & mask) | prot);
arch/arm/mm/init.c
324
pmd[0] = __pmd((pmd_val(pmd[0]) & mask) | prot);
arch/arm/mm/init.c
326
flush_pmd_entry(pmd);
arch/arm/mm/ioremap.c
179
pmd_t pmd = *pmdp;
arch/arm/mm/ioremap.c
181
if (!pmd_none(pmd)) {
arch/arm/mm/ioremap.c
195
if ((pmd_val(pmd) & PMD_TYPE_MASK) == PMD_TYPE_TABLE)
arch/arm/mm/ioremap.c
196
pte_free_kernel(&init_mm, pmd_page_vaddr(pmd));
arch/arm/mm/ioremap.c
217
pmd_t *pmd = pmd_off_k(addr);
arch/arm/mm/ioremap.c
226
pmd[0] = __pmd(__pfn_to_phys(pfn) | type->prot_sect);
arch/arm/mm/ioremap.c
228
pmd[1] = __pmd(__pfn_to_phys(pfn) | type->prot_sect);
arch/arm/mm/ioremap.c
230
flush_pmd_entry(pmd);
arch/arm/mm/ioremap.c
233
pmd += 2;
arch/arm/mm/ioremap.c
244
pmd_t *pmd = pmd_off_k(addr);
arch/arm/mm/ioremap.c
259
pmd[0] = __pmd(super_pmd_val);
arch/arm/mm/ioremap.c
260
pmd[1] = __pmd(super_pmd_val);
arch/arm/mm/ioremap.c
261
flush_pmd_entry(pmd);
arch/arm/mm/ioremap.c
264
pmd += 2;
arch/arm/mm/mmu.c
103
.pmd = PMD_SECT_WBWA,
arch/arm/mm/mmu.c
1082
pmd_t *pmd;
arch/arm/mm/mmu.c
1096
pmd = pmd_off_k(addr);
arch/arm/mm/mmu.c
1097
if (pmd_none(*pmd))
arch/arm/mm/mmu.c
1108
pmd = pmd_off_k(addr) + 1;
arch/arm/mm/mmu.c
1109
if (pmd_none(*pmd))
arch/arm/mm/mmu.c
118
void __init init_default_cache_policy(unsigned long pmd)
arch/arm/mm/mmu.c
122
initial_pmd_value = pmd;
arch/arm/mm/mmu.c
124
pmd &= PMD_SECT_CACHE_MASK;
arch/arm/mm/mmu.c
127
if (cache_policies[i].pmd == pmd) {
arch/arm/mm/mmu.c
377
pmd_t *pmd;
arch/arm/mm/mmu.c
386
pmd = fixmap_pmd(FIXADDR_TOP);
arch/arm/mm/mmu.c
387
pmd_populate_kernel(&init_mm, pmd, bm_pte);
arch/arm/mm/mmu.c
681
mem_types[MT_MEMORY_RWX].prot_sect |= ecc_mask | cp->pmd;
arch/arm/mm/mmu.c
683
mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
arch/arm/mm/mmu.c
685
mem_types[MT_MEMORY_RO].prot_sect |= ecc_mask | cp->pmd;
arch/arm/mm/mmu.c
689
mem_types[MT_ROM].prot_sect |= cp->pmd;
arch/arm/mm/mmu.c
691
switch (cp->pmd) {
arch/arm/mm/mmu.c
743
static pte_t * __init arm_pte_alloc(pmd_t *pmd, unsigned long addr,
arch/arm/mm/mmu.c
747
if (pmd_none(*pmd)) {
arch/arm/mm/mmu.c
749
__pmd_populate(pmd, __pa(pte), prot);
arch/arm/mm/mmu.c
75
pmdval_t pmd;
arch/arm/mm/mmu.c
751
BUG_ON(pmd_bad(*pmd));
arch/arm/mm/mmu.c
752
return pte_offset_kernel(pmd, addr);
arch/arm/mm/mmu.c
755
static pte_t * __init early_pte_alloc(pmd_t *pmd, unsigned long addr,
arch/arm/mm/mmu.c
758
return arm_pte_alloc(pmd, addr, prot, early_alloc);
arch/arm/mm/mmu.c
761
static void __init alloc_init_pte(pmd_t *pmd, unsigned long addr,
arch/arm/mm/mmu.c
767
pte_t *pte = arm_pte_alloc(pmd, addr, type->prot_l1, alloc);
arch/arm/mm/mmu.c
775
static void __init __map_init_section(pmd_t *pmd, unsigned long addr,
arch/arm/mm/mmu.c
779
pmd_t *p = pmd;
arch/arm/mm/mmu.c
792
pmd++;
arch/arm/mm/mmu.c
795
*pmd = __pmd(phys | type->prot_sect | (ng ? PMD_SECT_nG : 0));
arch/arm/mm/mmu.c
797
} while (pmd++, addr += SECTION_SIZE, addr != end);
arch/arm/mm/mmu.c
807
pmd_t *pmd = pmd_offset(pud, addr);
arch/arm/mm/mmu.c
823
__map_init_section(pmd, addr, next, phys, type, ng);
arch/arm/mm/mmu.c
825
alloc_init_pte(pmd, addr, next,
arch/arm/mm/mmu.c
83
.pmd = PMD_SECT_UNCACHED,
arch/arm/mm/mmu.c
831
} while (pmd++, addr = next, addr != end);
arch/arm/mm/mmu.c
88
.pmd = PMD_SECT_BUFFERED,
arch/arm/mm/mmu.c
913
pmd_t *pmd = pmd_offset(pud, addr);
arch/arm/mm/mmu.c
917
*pmd++ = __pmd(phys | type->prot_sect | PMD_SECT_SUPER |
arch/arm/mm/mmu.c
93
.pmd = PMD_SECT_WT,
arch/arm/mm/mmu.c
98
.pmd = PMD_SECT_WB,
arch/arm/mm/pgd.c
145
pmd_t *pmd;
arch/arm/mm/pgd.c
163
pmd = pmd_offset(pud, 0);
arch/arm/mm/pgd.c
164
if (pmd_none_or_clear_bad(pmd))
arch/arm/mm/pgd.c
167
pte = pmd_pgtable(*pmd);
arch/arm/mm/pgd.c
168
pmd_clear(pmd);
arch/arm/mm/pgd.c
173
pmd_free(mm, pmd);
arch/arm/mm/pgd.c
197
pmd = pmd_offset(pud, 0);
arch/arm/mm/pgd.c
199
pmd_free(mm, pmd);
arch/arm64/include/asm/pgtable-types.h
36
typedef struct { pmdval_t pmd; } pmd_t;
arch/arm64/include/asm/pgtable-types.h
37
#define pmd_val(x) ((x).pmd)
arch/arm64/include/asm/pgtable.h
1245
static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
arch/arm64/include/asm/pgtable.h
1247
return pte_pmd(pte_modify(pmd_pte(pmd), newprot));
arch/arm64/include/asm/pgtable.h
1271
static inline bool pmd_user_accessible_page(pmd_t pmd, unsigned long addr)
arch/arm64/include/asm/pgtable.h
1273
return pmd_valid(pmd) && !pmd_table(pmd) && (pmd_user(pmd) || pmd_user_exec(pmd));
arch/arm64/include/asm/pgtable.h
1496
unsigned long address, pmd_t *pmdp, pmd_t pmd)
arch/arm64/include/asm/pgtable.h
1498
page_table_check_pmd_set(vma->vm_mm, address, pmdp, pmd);
arch/arm64/include/asm/pgtable.h
1499
return __pmd(xchg_relaxed(&pmd_val(*pmdp), pmd_val(pmd)));
arch/arm64/include/asm/pgtable.h
1527
#define __pmd_to_swp_entry(pmd) ((swp_entry_t) { pmd_val(pmd) })
arch/arm64/include/asm/pgtable.h
1576
#define update_mmu_cache_pmd(vma, address, pmd) do { } while (0)
arch/arm64/include/asm/pgtable.h
231
#define pmd_access_permitted(pmd, write) \
arch/arm64/include/asm/pgtable.h
232
(pte_access_permitted(pmd_pte(pmd), (write)))
arch/arm64/include/asm/pgtable.h
248
static inline pmd_t clear_pmd_bit(pmd_t pmd, pgprot_t prot)
arch/arm64/include/asm/pgtable.h
250
pmd_val(pmd) &= ~pgprot_val(prot);
arch/arm64/include/asm/pgtable.h
251
return pmd;
arch/arm64/include/asm/pgtable.h
254
static inline pmd_t set_pmd_bit(pmd_t pmd, pgprot_t prot)
arch/arm64/include/asm/pgtable.h
256
pmd_val(pmd) |= pgprot_val(prot);
arch/arm64/include/asm/pgtable.h
257
return pmd;
arch/arm64/include/asm/pgtable.h
337
static inline pmd_t pmd_mkcont(pmd_t pmd)
arch/arm64/include/asm/pgtable.h
339
return __pmd(pmd_val(pmd) | PMD_SECT_CONT);
arch/arm64/include/asm/pgtable.h
342
static inline pmd_t pmd_mknoncont(pmd_t pmd)
arch/arm64/include/asm/pgtable.h
344
return __pmd(pmd_val(pmd) & ~PMD_SECT_CONT);
arch/arm64/include/asm/pgtable.h
508
static inline pte_t pmd_pte(pmd_t pmd)
arch/arm64/include/asm/pgtable.h
510
return __pte(pmd_val(pmd));
arch/arm64/include/asm/pgtable.h
578
static inline int pmd_protnone(pmd_t pmd)
arch/arm64/include/asm/pgtable.h
580
return pte_protnone(pmd_pte(pmd));
arch/arm64/include/asm/pgtable.h
584
#define pmd_present(pmd) pte_present(pmd_pte(pmd))
arch/arm64/include/asm/pgtable.h
585
#define pmd_dirty(pmd) pte_dirty(pmd_pte(pmd))
arch/arm64/include/asm/pgtable.h
586
#define pmd_young(pmd) pte_young(pmd_pte(pmd))
arch/arm64/include/asm/pgtable.h
587
#define pmd_valid(pmd) pte_valid(pmd_pte(pmd))
arch/arm64/include/asm/pgtable.h
588
#define pmd_user(pmd) pte_user(pmd_pte(pmd))
arch/arm64/include/asm/pgtable.h
589
#define pmd_user_exec(pmd) pte_user_exec(pmd_pte(pmd))
arch/arm64/include/asm/pgtable.h
590
#define pmd_cont(pmd) pte_cont(pmd_pte(pmd))
arch/arm64/include/asm/pgtable.h
591
#define pmd_wrprotect(pmd) pte_pmd(pte_wrprotect(pmd_pte(pmd)))
arch/arm64/include/asm/pgtable.h
592
#define pmd_mkold(pmd) pte_pmd(pte_mkold(pmd_pte(pmd)))
arch/arm64/include/asm/pgtable.h
593
#define pmd_mkwrite_novma(pmd) pte_pmd(pte_mkwrite_novma(pmd_pte(pmd)))
arch/arm64/include/asm/pgtable.h
594
#define pmd_mkclean(pmd) pte_pmd(pte_mkclean(pmd_pte(pmd)))
arch/arm64/include/asm/pgtable.h
595
#define pmd_mkdirty(pmd) pte_pmd(pte_mkdirty(pmd_pte(pmd)))
arch/arm64/include/asm/pgtable.h
596
#define pmd_mkyoung(pmd) pte_pmd(pte_mkyoung(pmd_pte(pmd)))
arch/arm64/include/asm/pgtable.h
597
#define pmd_mkinvalid(pmd) pte_pmd(pte_mkinvalid(pmd_pte(pmd)))
arch/arm64/include/asm/pgtable.h
599
#define pmd_uffd_wp(pmd) pte_uffd_wp(pmd_pte(pmd))
arch/arm64/include/asm/pgtable.h
600
#define pmd_mkuffd_wp(pmd) pte_pmd(pte_mkuffd_wp(pmd_pte(pmd)))
arch/arm64/include/asm/pgtable.h
601
#define pmd_clear_uffd_wp(pmd) pte_pmd(pte_clear_uffd_wp(pmd_pte(pmd)))
arch/arm64/include/asm/pgtable.h
602
#define pmd_swp_uffd_wp(pmd) pte_swp_uffd_wp(pmd_pte(pmd))
arch/arm64/include/asm/pgtable.h
603
#define pmd_swp_mkuffd_wp(pmd) pte_pmd(pte_swp_mkuffd_wp(pmd_pte(pmd)))
arch/arm64/include/asm/pgtable.h
604
#define pmd_swp_clear_uffd_wp(pmd) \
arch/arm64/include/asm/pgtable.h
605
pte_pmd(pte_swp_clear_uffd_wp(pmd_pte(pmd)))
arch/arm64/include/asm/pgtable.h
608
#define pmd_write(pmd) pte_write(pmd_pte(pmd))
arch/arm64/include/asm/pgtable.h
610
static inline pmd_t pmd_mkhuge(pmd_t pmd)
arch/arm64/include/asm/pgtable.h
620
return __pmd((pmd_val(pmd) & ~mask) | val);
arch/arm64/include/asm/pgtable.h
625
static inline pmd_t pmd_mkspecial(pmd_t pmd)
arch/arm64/include/asm/pgtable.h
627
return set_pmd_bit(pmd, __pgprot(PTE_SPECIAL));
arch/arm64/include/asm/pgtable.h
631
#define __pmd_to_phys(pmd) __pte_to_phys(pmd_pte(pmd))
arch/arm64/include/asm/pgtable.h
633
#define pmd_pfn(pmd) ((__pmd_to_phys(pmd) & PMD_MASK) >> PAGE_SHIFT)
arch/arm64/include/asm/pgtable.h
659
static inline pgprot_t pmd_pgprot(pmd_t pmd)
arch/arm64/include/asm/pgtable.h
661
unsigned long pfn = pmd_pfn(pmd);
arch/arm64/include/asm/pgtable.h
663
return __pgprot(pmd_val(pfn_pmd(pfn, __pgprot(0))) ^ pmd_val(pmd));
arch/arm64/include/asm/pgtable.h
719
pmd_t *pmdp, pmd_t pmd, unsigned int nr)
arch/arm64/include/asm/pgtable.h
721
__set_ptes_anysz(mm, addr, (pte_t *)pmdp, pmd_pte(pmd), nr, PMD_SIZE);
arch/arm64/include/asm/pgtable.h
723
#define set_pmd_at(mm, addr, pmdp, pmd) __set_pmds(mm, addr, pmdp, pmd, 1)
arch/arm64/include/asm/pgtable.h
778
#define pmd_none(pmd) (!pmd_val(pmd))
arch/arm64/include/asm/pgtable.h
780
#define pmd_table(pmd) ((pmd_val(pmd) & PMD_TYPE_MASK) == \
arch/arm64/include/asm/pgtable.h
782
#define pmd_sect(pmd) ((pmd_val(pmd) & PMD_TYPE_MASK) == \
arch/arm64/include/asm/pgtable.h
784
#define pmd_leaf(pmd) (pmd_present(pmd) && !pmd_table(pmd))
arch/arm64/include/asm/pgtable.h
785
#define pmd_bad(pmd) (!pmd_table(pmd))
arch/arm64/include/asm/pgtable.h
787
#define pmd_leaf_size(pmd) (pmd_cont(pmd) ? CONT_PMD_SIZE : PMD_SIZE)
arch/arm64/include/asm/pgtable.h
791
static inline int pmd_trans_huge(pmd_t pmd)
arch/arm64/include/asm/pgtable.h
797
return pmd_present(pmd) && !pmd_table(__pmd(pmd_val(pmd) | PTE_VALID));
arch/arm64/include/asm/pgtable.h
824
static inline void set_pmd(pmd_t *pmdp, pmd_t pmd)
arch/arm64/include/asm/pgtable.h
828
set_swapper_pgd((pgd_t *)pmdp, __pgd(pmd_val(pmd)));
arch/arm64/include/asm/pgtable.h
833
WRITE_ONCE(*pmdp, pmd);
arch/arm64/include/asm/pgtable.h
835
if (pmd_valid(pmd))
arch/arm64/include/asm/pgtable.h
844
static inline phys_addr_t pmd_page_paddr(pmd_t pmd)
arch/arm64/include/asm/pgtable.h
846
return __pmd_to_phys(pmd);
arch/arm64/include/asm/pgtable.h
849
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
arch/arm64/include/asm/pgtable.h
851
return (unsigned long)__va(pmd_page_paddr(pmd));
arch/arm64/include/asm/pgtable.h
858
#define pte_set_fixmap_offset(pmd, addr) pte_set_fixmap(pte_offset_phys(pmd, addr))
arch/arm64/include/asm/pgtable.h
861
#define pmd_page(pmd) phys_to_page(__pmd_to_phys(pmd))
arch/arm64/include/asm/ptdump.h
66
void note_page_pmd(struct ptdump_state *st, unsigned long addr, pmd_t pmd);
arch/arm64/include/asm/ptdump.h
82
static inline void note_page_pmd(struct ptdump_state *st, unsigned long addr, pmd_t pmd) { }
arch/arm64/mm/fault.c
161
pmd_t *pmdp, pmd;
arch/arm64/mm/fault.c
180
pmd = READ_ONCE(*pmdp);
arch/arm64/mm/fault.c
181
pr_cont(", pmd=%016llx", pmd_val(pmd));
arch/arm64/mm/fault.c
182
if (pmd_none(pmd) || pmd_bad(pmd))
arch/arm64/mm/fixmap.c
45
pmd_t pmd = READ_ONCE(*pmdp);
arch/arm64/mm/fixmap.c
48
if (pmd_none(pmd)) {
arch/arm64/mm/hugetlbpage.c
284
pmd_t *pmdp, pmd;
arch/arm64/mm/hugetlbpage.c
307
pmd = READ_ONCE(*pmdp);
arch/arm64/mm/hugetlbpage.c
309
pmd_none(pmd))
arch/arm64/mm/hugetlbpage.c
311
if (pmd_leaf(pmd) || !pmd_present(pmd))
arch/arm64/mm/mmu.c
1473
pmd_t *pmdp, pmd;
arch/arm64/mm/mmu.c
1478
pmd = READ_ONCE(*pmdp);
arch/arm64/mm/mmu.c
1479
if (pmd_none(pmd))
arch/arm64/mm/mmu.c
1482
WARN_ON(!pmd_present(pmd));
arch/arm64/mm/mmu.c
1483
if (pmd_sect(pmd)) {
arch/arm64/mm/mmu.c
1492
free_hotplug_page_range(pmd_page(pmd),
arch/arm64/mm/mmu.c
1496
WARN_ON(!pmd_table(pmd));
arch/arm64/mm/mmu.c
1620
pmd_t *pmdp, pmd;
arch/arm64/mm/mmu.c
1626
pmd = READ_ONCE(*pmdp);
arch/arm64/mm/mmu.c
1627
if (pmd_none(pmd))
arch/arm64/mm/mmu.c
1630
WARN_ON(!pmd_present(pmd) || !pmd_table(pmd) || pmd_sect(pmd));
arch/arm64/mm/mmu.c
1848
pmd_t pmd;
arch/arm64/mm/mmu.c
1850
pmd = READ_ONCE(*pmdp);
arch/arm64/mm/mmu.c
1852
if (!pmd_table(pmd)) {
arch/arm64/mm/mmu.c
204
pmd_t pmd = READ_ONCE(*pmdp);
arch/arm64/mm/mmu.c
207
BUG_ON(pmd_sect(pmd));
arch/arm64/mm/mmu.c
208
if (pmd_none(pmd)) {
arch/arm64/mm/mmu.c
223
BUG_ON(pmd_bad(pmd));
arch/arm64/mm/mmu.c
587
static int split_pmd(pmd_t *pmdp, pmd_t pmd, gfp_t gfp, bool to_cont)
arch/arm64/mm/mmu.c
590
unsigned long pfn = pmd_pfn(pmd);
arch/arm64/mm/mmu.c
591
pgprot_t prot = pmd_pgprot(pmd);
arch/arm64/mm/mmu.c
672
pmd_t *pmdp, pmd;
arch/arm64/mm/mmu.c
723
pmd = pmdp_get(pmdp);
arch/arm64/mm/mmu.c
724
if (!pmd_present(pmd))
arch/arm64/mm/mmu.c
726
if (pmd_leaf(pmd)) {
arch/arm64/mm/mmu.c
727
if (pmd_cont(pmd))
arch/arm64/mm/mmu.c
735
ret = split_pmd(pmdp, pmd, GFP_PGTABLE_KERNEL, true);
arch/arm64/mm/mmu.c
847
pmd_t pmd = pmdp_get(pmdp);
arch/arm64/mm/mmu.c
850
if (pmd_leaf(pmd)) {
arch/arm64/mm/mmu.c
851
if (pmd_cont(pmd))
arch/arm64/mm/mmu.c
853
ret = split_pmd(pmdp, pmd, gfp, false);
arch/arm64/mm/pageattr.c
391
pmd_t *pmdp, pmd;
arch/arm64/mm/pageattr.c
411
pmd = READ_ONCE(*pmdp);
arch/arm64/mm/pageattr.c
412
if (pmd_none(pmd))
arch/arm64/mm/pageattr.c
414
if (pmd_sect(pmd))
arch/arm64/mm/pageattr.c
50
static int pageattr_pmd_entry(pmd_t *pmd, unsigned long addr,
arch/arm64/mm/pageattr.c
53
pmd_t val = pmdp_get(pmd);
arch/arm64/mm/pageattr.c
59
set_pmd(pmd, val);
arch/arm64/mm/ptdump.c
259
void note_page_pmd(struct ptdump_state *pt_st, unsigned long addr, pmd_t pmd)
arch/arm64/mm/ptdump.c
261
note_page(pt_st, addr, 3, pmd_val(pmd));
arch/arm64/mm/trans_pgd.c
103
pmd_t pmd = READ_ONCE(*src_pmdp);
arch/arm64/mm/trans_pgd.c
106
if (pmd_none(pmd))
arch/arm64/mm/trans_pgd.c
108
if (pmd_table(pmd)) {
arch/arm64/mm/trans_pgd.c
113
__pmd(pmd_val(pmd) & ~PMD_SECT_RDONLY));
arch/csky/include/asm/pgalloc.h
13
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
arch/csky/include/asm/pgalloc.h
16
set_pmd(pmd, __pmd(__pa(pte)));
arch/csky/include/asm/pgalloc.h
19
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
arch/csky/include/asm/pgalloc.h
22
set_pmd(pmd, __pmd(__pa(page_address(pte))));
arch/csky/include/asm/pgtable.h
104
#define pmd_phys(pmd) pmd_val(pmd)
arch/csky/include/asm/pgtable.h
106
static inline void set_pmd(pmd_t *p, pmd_t pmd)
arch/csky/include/asm/pgtable.h
108
*p = pmd;
arch/csky/include/asm/pgtable.h
117
static inline int pmd_none(pmd_t pmd)
arch/csky/include/asm/pgtable.h
119
return pmd_val(pmd) == __pa(invalid_pte_table);
arch/csky/include/asm/pgtable.h
122
#define pmd_bad(pmd) (pmd_val(pmd) & ~PAGE_MASK)
arch/csky/include/asm/pgtable.h
124
static inline int pmd_present(pmd_t pmd)
arch/csky/include/asm/pgtable.h
126
return (pmd_val(pmd) != __pa(invalid_pte_table));
arch/csky/include/asm/pgtable.h
32
#define pmd_pfn(pmd) (pmd_phys(pmd) >> PAGE_SHIFT)
arch/csky/include/asm/pgtable.h
33
#define pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT))
arch/csky/include/asm/pgtable.h
95
static inline pte_t *pmd_page_vaddr(pmd_t pmd)
arch/csky/include/asm/pgtable.h
99
ptr = pmd_val(pmd);
arch/csky/mm/fault.c
119
pmd_t *pmd, *pmd_k;
arch/csky/mm/fault.c
154
pmd = pmd_offset(pud, addr);
arch/csky/mm/fault.c
160
set_pmd(pmd, *pmd_k);
arch/csky/mm/highmem.c
24
pmd_t *pmd;
arch/csky/mm/highmem.c
33
pmd = pmd_offset(pud, vaddr);
arch/csky/mm/highmem.c
34
pte = pte_offset_kernel(pmd, vaddr);
arch/csky/mm/init.c
106
pmd = (pmd_t *)pud;
arch/csky/mm/init.c
107
for (; (k < PTRS_PER_PMD) && (vaddr != end); pmd++, k++) {
arch/csky/mm/init.c
108
if (pmd_none(*pmd)) {
arch/csky/mm/init.c
115
set_pmd(pmd, __pmd(__pa(pte)));
arch/csky/mm/init.c
116
BUG_ON(pte != pte_offset_kernel(pmd, 0));
arch/csky/mm/init.c
92
pmd_t *pmd;
arch/hexagon/include/asm/pgalloc.h
44
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
arch/hexagon/include/asm/pgalloc.h
51
set_pmd(pmd, __pmd(((unsigned long)page_to_pfn(pte) << PAGE_SHIFT) |
arch/hexagon/include/asm/pgalloc.h
64
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
arch/hexagon/include/asm/pgalloc.h
77
set_pmd(pmd, __pmd(((unsigned long)__pa(pte)) | HEXAGON_L1_PTE_SIZE));
arch/hexagon/include/asm/pgalloc.h
83
pmdindex = (pgd_t *)pmd - mm->pgd;
arch/hexagon/include/asm/pgtable.h
188
static inline int pmd_none(pmd_t pmd)
arch/hexagon/include/asm/pgtable.h
190
return pmd_val(pmd) == _NULL_PMD;
arch/hexagon/include/asm/pgtable.h
199
static inline int pmd_present(pmd_t pmd)
arch/hexagon/include/asm/pgtable.h
201
return pmd_val(pmd) != (unsigned long)_NULL_PMD;
arch/hexagon/include/asm/pgtable.h
209
static inline int pmd_bad(pmd_t pmd)
arch/hexagon/include/asm/pgtable.h
217
#define pmd_pfn(pmd) (pmd_val(pmd) >> PAGE_SHIFT)
arch/hexagon/include/asm/pgtable.h
222
#define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT))
arch/hexagon/include/asm/pgtable.h
346
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
arch/hexagon/include/asm/pgtable.h
348
return (unsigned long)__va(pmd_val(pmd) & PAGE_MASK);
arch/loongarch/include/asm/pgalloc.h
17
pmd_t *pmd, pte_t *pte)
arch/loongarch/include/asm/pgalloc.h
19
set_pmd(pmd, __pmd((unsigned long)pte));
arch/loongarch/include/asm/pgalloc.h
22
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte)
arch/loongarch/include/asm/pgalloc.h
24
set_pmd(pmd, __pmd((unsigned long)page_address(pte)));
arch/loongarch/include/asm/pgalloc.h
29
static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
arch/loongarch/include/asm/pgalloc.h
31
set_pud(pud, __pud((unsigned long)pmd));
arch/loongarch/include/asm/pgalloc.h
64
pmd_t *pmd;
arch/loongarch/include/asm/pgalloc.h
76
pmd = ptdesc_address(ptdesc);
arch/loongarch/include/asm/pgalloc.h
77
pmd_init(pmd);
arch/loongarch/include/asm/pgalloc.h
78
return pmd;
arch/loongarch/include/asm/pgtable.h
190
typedef struct { unsigned long pmd; } pmd_t;
arch/loongarch/include/asm/pgtable.h
191
#define pmd_val(x) ((x).pmd)
arch/loongarch/include/asm/pgtable.h
237
static inline int pmd_none(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
239
return pmd_val(pmd) == (unsigned long)invalid_pte_table;
arch/loongarch/include/asm/pgtable.h
242
static inline int pmd_bad(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
244
return (pmd_val(pmd) & ~PAGE_MASK);
arch/loongarch/include/asm/pgtable.h
247
static inline int pmd_present(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
249
if (unlikely(pmd_val(pmd) & _PAGE_HUGE))
arch/loongarch/include/asm/pgtable.h
250
return !!(pmd_val(pmd) & (_PAGE_PRESENT | _PAGE_PROTNONE | _PAGE_PRESENT_INVALID));
arch/loongarch/include/asm/pgtable.h
252
return pmd_val(pmd) != (unsigned long)invalid_pte_table;
arch/loongarch/include/asm/pgtable.h
255
static inline void set_pmd(pmd_t *pmd, pmd_t pmdval)
arch/loongarch/include/asm/pgtable.h
257
WRITE_ONCE(*pmd, pmdval);
arch/loongarch/include/asm/pgtable.h
265
#define pmd_phys(pmd) PHYSADDR(pmd_val(pmd))
arch/loongarch/include/asm/pgtable.h
268
#define pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT))
arch/loongarch/include/asm/pgtable.h
271
#define pmd_page_vaddr(pmd) pmd_val(pmd)
arch/loongarch/include/asm/pgtable.h
273
extern void set_pmd_at(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t pmd);
arch/loongarch/include/asm/pgtable.h
337
#define __pmd_to_swp_entry(pmd) ((swp_entry_t) { pmd_val(pmd) })
arch/loongarch/include/asm/pgtable.h
494
static inline unsigned long pmd_pfn(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
496
return (pmd_val(pmd) & _PFN_MASK) >> PFN_PTE_SHIFT;
arch/loongarch/include/asm/pgtable.h
504
static inline int pmd_trans_huge(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
506
return !!(pmd_val(pmd) & _PAGE_HUGE) && pmd_present(pmd);
arch/loongarch/include/asm/pgtable.h
509
static inline pmd_t pmd_mkhuge(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
511
pmd_val(pmd) = (pmd_val(pmd) & ~(_PAGE_GLOBAL)) |
arch/loongarch/include/asm/pgtable.h
512
((pmd_val(pmd) & _PAGE_GLOBAL) << (_PAGE_HGLOBAL_SHIFT - _PAGE_GLOBAL_SHIFT));
arch/loongarch/include/asm/pgtable.h
513
pmd_val(pmd) |= _PAGE_HUGE;
arch/loongarch/include/asm/pgtable.h
515
return pmd;
arch/loongarch/include/asm/pgtable.h
519
static inline int pmd_write(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
521
return !!(pmd_val(pmd) & _PAGE_WRITE);
arch/loongarch/include/asm/pgtable.h
524
static inline pmd_t pmd_mkwrite_novma(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
526
pmd_val(pmd) |= _PAGE_WRITE;
arch/loongarch/include/asm/pgtable.h
527
if (pmd_val(pmd) & _PAGE_MODIFIED)
arch/loongarch/include/asm/pgtable.h
528
pmd_val(pmd) |= _PAGE_DIRTY;
arch/loongarch/include/asm/pgtable.h
529
return pmd;
arch/loongarch/include/asm/pgtable.h
532
static inline pmd_t pmd_wrprotect(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
534
pmd_val(pmd) &= ~(_PAGE_WRITE | _PAGE_DIRTY);
arch/loongarch/include/asm/pgtable.h
535
return pmd;
arch/loongarch/include/asm/pgtable.h
539
static inline int pmd_dirty(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
541
return !!(pmd_val(pmd) & (_PAGE_DIRTY | _PAGE_MODIFIED));
arch/loongarch/include/asm/pgtable.h
544
static inline pmd_t pmd_mkclean(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
546
pmd_val(pmd) &= ~(_PAGE_DIRTY | _PAGE_MODIFIED);
arch/loongarch/include/asm/pgtable.h
547
return pmd;
arch/loongarch/include/asm/pgtable.h
550
static inline pmd_t pmd_mkdirty(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
552
pmd_val(pmd) |= _PAGE_MODIFIED;
arch/loongarch/include/asm/pgtable.h
553
if (pmd_val(pmd) & _PAGE_WRITE)
arch/loongarch/include/asm/pgtable.h
554
pmd_val(pmd) |= _PAGE_DIRTY;
arch/loongarch/include/asm/pgtable.h
555
return pmd;
arch/loongarch/include/asm/pgtable.h
559
static inline int pmd_young(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
561
return !!(pmd_val(pmd) & _PAGE_ACCESSED);
arch/loongarch/include/asm/pgtable.h
564
static inline pmd_t pmd_mkold(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
566
pmd_val(pmd) &= ~_PAGE_ACCESSED;
arch/loongarch/include/asm/pgtable.h
567
return pmd;
arch/loongarch/include/asm/pgtable.h
570
static inline pmd_t pmd_mkyoung(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
572
pmd_val(pmd) |= _PAGE_ACCESSED;
arch/loongarch/include/asm/pgtable.h
573
return pmd;
arch/loongarch/include/asm/pgtable.h
576
static inline struct page *pmd_page(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
578
if (pmd_trans_huge(pmd))
arch/loongarch/include/asm/pgtable.h
579
return pfn_to_page(pmd_pfn(pmd));
arch/loongarch/include/asm/pgtable.h
581
return pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT);
arch/loongarch/include/asm/pgtable.h
584
static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
arch/loongarch/include/asm/pgtable.h
586
if (pmd_val(pmd) & _PAGE_DIRTY)
arch/loongarch/include/asm/pgtable.h
587
pmd_val(pmd) |= _PAGE_MODIFIED;
arch/loongarch/include/asm/pgtable.h
589
return __pmd((pmd_val(pmd) & _HPAGE_CHG_MASK) |
arch/loongarch/include/asm/pgtable.h
593
static inline pmd_t pmd_mkinvalid(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
595
pmd_val(pmd) |= _PAGE_PRESENT_INVALID;
arch/loongarch/include/asm/pgtable.h
596
pmd_val(pmd) &= ~(_PAGE_PRESENT | _PAGE_VALID | _PAGE_DIRTY | _PAGE_PROTNONE);
arch/loongarch/include/asm/pgtable.h
598
return pmd;
arch/loongarch/include/asm/pgtable.h
624
static inline long pmd_protnone(pmd_t pmd)
arch/loongarch/include/asm/pgtable.h
626
return (pmd_val(pmd) & _PAGE_PROTNONE);
arch/loongarch/include/asm/pgtable.h
630
#define pmd_leaf(pmd) ((pmd_val(pmd) & _PAGE_HUGE) != 0)
arch/loongarch/kvm/mmu.c
675
pmd_t pmd;
arch/loongarch/kvm/mmu.c
713
pmd = pmdp_get(pmd_offset(&pud, hva));
arch/loongarch/kvm/mmu.c
714
if (pmd_none(pmd) || !pmd_present(pmd))
arch/loongarch/kvm/mmu.c
717
if (kvm_pte_huge(pmd_val(pmd)))
arch/loongarch/mm/fault.c
39
pmd_t *pmd;
arch/loongarch/mm/fault.c
57
pmd = pmd_offset(pud, address);
arch/loongarch/mm/fault.c
58
if (!pmd_present(pmdp_get(pmd)))
arch/loongarch/mm/fault.c
61
if (pmd_leaf(*pmd)) {
arch/loongarch/mm/fault.c
62
return write ? pmd_write(pmdp_get(pmd)) : 1;
arch/loongarch/mm/fault.c
64
pte = pte_offset_kernel(pmd, address);
arch/loongarch/mm/hugetlbpage.c
39
pmd_t *pmd = NULL;
arch/loongarch/mm/hugetlbpage.c
47
pmd = pmd_offset(pud, addr);
arch/loongarch/mm/hugetlbpage.c
51
return (!pmd || pmd_none(pmdp_get(pmd))) ? NULL : (pte_t *) pmd;
arch/loongarch/mm/init.c
106
void __meminit vmemmap_set_pmd(pmd_t *pmd, void *p, int node,
arch/loongarch/mm/init.c
113
set_pmd_at(&init_mm, addr, pmd, entry);
arch/loongarch/mm/init.c
116
int __meminit vmemmap_check_pmd(pmd_t *pmd, int node,
arch/loongarch/mm/init.c
119
int huge = pmd_val(pmdp_get(pmd)) & _PAGE_HUGE;
arch/loongarch/mm/init.c
122
vmemmap_verify((pte_t *)pmd, node, addr, next);
arch/loongarch/mm/init.c
149
pmd_t *pmd;
arch/loongarch/mm/init.c
161
pmd = memblock_alloc_or_panic(PAGE_SIZE, PAGE_SIZE);
arch/loongarch/mm/init.c
162
pud_populate(&init_mm, pud, pmd);
arch/loongarch/mm/init.c
164
pmd_init(pmd);
arch/loongarch/mm/init.c
168
pmd = pmd_offset(pud, addr);
arch/loongarch/mm/init.c
169
if (!pmd_present(pmdp_get(pmd))) {
arch/loongarch/mm/init.c
173
pmd_populate_kernel(&init_mm, pmd, pte);
arch/loongarch/mm/init.c
177
return pte_offset_kernel(pmd, addr);
arch/loongarch/mm/kasan_init.c
37
#define __pmd_none(early, pmd) (early ? (pmd_val(pmd) == 0) : \
arch/loongarch/mm/kasan_init.c
38
(__pa(pmd_val(pmd)) == (unsigned long)__pa(kasan_early_shadow_pte)))
arch/loongarch/mm/pageattr.c
166
pmd_t *pmd;
arch/loongarch/mm/pageattr.c
191
pmd = pmd_offset(pud, addr);
arch/loongarch/mm/pageattr.c
192
if (pmd_none(pmdp_get(pmd)))
arch/loongarch/mm/pageattr.c
194
if (pmd_leaf(pmdp_get(pmd)))
arch/loongarch/mm/pageattr.c
197
pte = pte_offset_kernel(pmd, addr);
arch/loongarch/mm/pageattr.c
67
static int pageattr_pmd_entry(pmd_t *pmd, unsigned long addr,
arch/loongarch/mm/pageattr.c
70
pmd_t val = pmdp_get(pmd);
arch/loongarch/mm/pageattr.c
74
set_pmd(pmd, val);
arch/loongarch/mm/pgtable.c
139
pmd_t *pmdp, pmd_t pmd)
arch/loongarch/mm/pgtable.c
141
WRITE_ONCE(*pmdp, pmd);
arch/m68k/include/asm/mcf_pgalloc.h
35
#define pmd_populate(mm, pmd, pte) (pmd_val(*pmd) = (unsigned long)(pte))
arch/m68k/include/asm/mcf_pgalloc.h
76
#define pmd_free(mm, pmd) BUG()
arch/m68k/include/asm/mcf_pgtable.h
113
#define pmd_page_vaddr(pmd) ((unsigned long) (pmd_val(pmd)))
arch/m68k/include/asm/mcf_pgtable.h
133
static inline int pmd_none2(pmd_t *pmd) { return !pmd_val(*pmd); }
arch/m68k/include/asm/mcf_pgtable.h
134
#define pmd_none(pmd) pmd_none2(&(pmd))
arch/m68k/include/asm/mcf_pgtable.h
135
static inline int pmd_bad2(pmd_t *pmd) { return 0; }
arch/m68k/include/asm/mcf_pgtable.h
136
#define pmd_bad(pmd) pmd_bad2(&(pmd))
arch/m68k/include/asm/mcf_pgtable.h
137
#define pmd_present(pmd) (!pmd_none2(&(pmd)))
arch/m68k/include/asm/mcf_pgtable.h
289
#define pmd_pfn(pmd) (pmd_val(pmd) >> PAGE_SHIFT)
arch/m68k/include/asm/mcf_pgtable.h
290
#define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT))
arch/m68k/include/asm/mcf_pgtable.h
97
#define pmd_pgtable(pmd) pfn_to_virt(pmd_val(pmd) >> PAGE_SHIFT)
arch/m68k/include/asm/mmu_context.h
101
pmd_t *pmd;
arch/m68k/include/asm/mmu_context.h
136
pmd = pmd_offset(pud, mmuar);
arch/m68k/include/asm/mmu_context.h
137
if (pmd_none(*pmd))
arch/m68k/include/asm/mmu_context.h
140
pte = (mmuar >= PAGE_OFFSET) ? pte_offset_kernel(pmd, mmuar)
arch/m68k/include/asm/mmu_context.h
141
: pte_offset_map(pmd, mmuar);
arch/m68k/include/asm/motorola_pgalloc.h
59
static inline int pmd_free(struct mm_struct *mm, pmd_t *pmd)
arch/m68k/include/asm/motorola_pgalloc.h
61
return free_pointer_table(pmd, TABLE_PMD);
arch/m68k/include/asm/motorola_pgalloc.h
64
static inline int __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
arch/m68k/include/asm/motorola_pgalloc.h
67
return free_pointer_table(pmd, TABLE_PMD);
arch/m68k/include/asm/motorola_pgalloc.h
82
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte)
arch/m68k/include/asm/motorola_pgalloc.h
84
pmd_set(pmd, pte);
arch/m68k/include/asm/motorola_pgalloc.h
87
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t page)
arch/m68k/include/asm/motorola_pgalloc.h
89
pmd_set(pmd, page);
arch/m68k/include/asm/motorola_pgalloc.h
92
static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
arch/m68k/include/asm/motorola_pgalloc.h
94
pud_set(pud, pmd);
arch/m68k/include/asm/motorola_pgtable.h
101
#define pmd_page_vaddr(pmd) ((unsigned long)__va(pmd_val(pmd) & _TABLE_MASK))
arch/m68k/include/asm/motorola_pgtable.h
114
#define pmd_none(pmd) (!pmd_val(pmd))
arch/m68k/include/asm/motorola_pgtable.h
115
#define pmd_bad(pmd) ((pmd_val(pmd) & _DESCTYPE_MASK) != _PAGE_TABLE)
arch/m68k/include/asm/motorola_pgtable.h
116
#define pmd_present(pmd) (pmd_val(pmd) & _PAGE_TABLE)
arch/m68k/include/asm/motorola_pgtable.h
119
#define pmd_pfn(pmd) ((pmd_val(pmd) & _TABLE_MASK) >> PAGE_SHIFT)
arch/m68k/include/asm/motorola_pgtable.h
125
#define pmd_page(pmd) ((struct page *)NULL)
arch/m68k/include/asm/motorola_pgtable.h
82
#define pmd_pgtable(pmd) ((pgtable_t)pmd_page_vaddr(pmd))
arch/m68k/include/asm/page.h
19
typedef struct { unsigned long pmd; } pmd_t;
arch/m68k/include/asm/page.h
20
#define pmd_val(x) ((&x)->pmd)
arch/m68k/include/asm/sun3_pgalloc.h
23
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte)
arch/m68k/include/asm/sun3_pgalloc.h
25
pmd_val(*pmd) = __pa((unsigned long)pte);
arch/m68k/include/asm/sun3_pgalloc.h
28
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t page)
arch/m68k/include/asm/sun3_pgalloc.h
30
pmd_val(*pmd) = __pa((unsigned long)page_address(page));
arch/m68k/include/asm/sun3_pgtable.h
108
#define pmd_pfn(pmd) (pmd_val(pmd) >> PAGE_SHIFT)
arch/m68k/include/asm/sun3_pgtable.h
109
#define pmd_page(pmd) virt_to_page((void *)pmd_page_vaddr(pmd))
arch/m68k/include/asm/sun3_pgtable.h
112
static inline int pmd_none2 (pmd_t *pmd) { return !pmd_val (*pmd); }
arch/m68k/include/asm/sun3_pgtable.h
113
#define pmd_none(pmd) pmd_none2(&(pmd))
arch/m68k/include/asm/sun3_pgtable.h
115
static inline int pmd_bad2 (pmd_t *pmd) { return 0; }
arch/m68k/include/asm/sun3_pgtable.h
116
#define pmd_bad(pmd) pmd_bad2(&(pmd))
arch/m68k/include/asm/sun3_pgtable.h
117
static inline int pmd_present2 (pmd_t *pmd) { return pmd_val (*pmd) & SUN3_PMD_VALID; }
arch/m68k/include/asm/sun3_pgtable.h
119
#define pmd_present(pmd) (!pmd_none2(&(pmd)))
arch/m68k/include/asm/sun3_pgtable.h
90
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
arch/m68k/include/asm/sun3_pgtable.h
92
return (unsigned long)__va(pmd_val(pmd) & PAGE_MASK);
arch/m68k/kernel/sys_m68k.c
472
pmd_t *pmd;
arch/m68k/kernel/sys_m68k.c
487
pmd = pmd_offset(pud, (unsigned long)mem);
arch/m68k/kernel/sys_m68k.c
488
if (!pmd_present(*pmd))
arch/m68k/kernel/sys_m68k.c
490
pte = pte_offset_map_lock(mm, pmd, (unsigned long)mem, &ptl);
arch/m68k/mm/init.c
111
pmd_t *pmd = &pmd_dir[j];
arch/m68k/mm/init.c
114
if (!pmd_present(*pmd))
arch/m68k/mm/init.c
117
pte_dir = (pte_t *)pmd_page_vaddr(*pmd);
arch/m68k/mm/kmap.c
375
unsigned long pmd = pmd_val(*pmd_dir);
arch/m68k/mm/kmap.c
377
if ((pmd & _DESCTYPE_MASK) == _PAGE_PRESENT) {
arch/m68k/mm/kmap.c
378
*pmd_dir = __pmd((pmd & _CACHEMASK040) | cmode);
arch/m68k/mm/mcfmmu.c
110
pmd = pmd_offset(pud, mmuar);
arch/m68k/mm/mcfmmu.c
111
if (pmd_none(*pmd))
arch/m68k/mm/mcfmmu.c
114
pte = (KMAPAREA(mmuar)) ? pte_offset_kernel(pmd, mmuar)
arch/m68k/mm/mcfmmu.c
115
: pte_offset_map(pmd, mmuar);
arch/m68k/mm/mcfmmu.c
84
pmd_t *pmd;
arch/m68k/mm/motorola.c
263
unsigned long pmd, last;
arch/m68k/mm/motorola.c
276
pmd = pgd_page_vaddr(kernel_pg_dir[i]);
arch/m68k/mm/motorola.c
277
if (pmd > last)
arch/m68k/mm/motorola.c
278
last = pmd;
arch/m68k/sun3x/dvma.c
101
if((pmd = pmd_alloc(&init_mm, pud, vaddr)) == NULL) {
arch/m68k/sun3x/dvma.c
115
if((pte = pte_alloc_kernel(pmd, vaddr)) == NULL) {
arch/m68k/sun3x/dvma.c
98
pmd_t *pmd;
arch/microblaze/include/asm/pgalloc.h
22
extern void __bad_pte(pmd_t *pmd);
arch/microblaze/include/asm/pgalloc.h
30
#define pmd_populate(mm, pmd, pte) \
arch/microblaze/include/asm/pgalloc.h
31
(pmd_val(*(pmd)) = (unsigned long)page_address(pte))
arch/microblaze/include/asm/pgalloc.h
33
#define pmd_populate_kernel(mm, pmd, pte) \
arch/microblaze/include/asm/pgalloc.h
34
(pmd_val(*(pmd)) = (unsigned long) (pte))
arch/microblaze/include/asm/pgtable.h
225
#define pmd_none(pmd) (!pmd_val(pmd))
arch/microblaze/include/asm/pgtable.h
226
#define pmd_bad(pmd) ((pmd_val(pmd) & _PMD_PRESENT) == 0)
arch/microblaze/include/asm/pgtable.h
227
#define pmd_present(pmd) ((pmd_val(pmd) & _PMD_PRESENT) != 0)
arch/microblaze/include/asm/pgtable.h
368
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
arch/microblaze/include/asm/pgtable.h
370
return ((unsigned long) (pmd_val(pmd) & PAGE_MASK));
arch/microblaze/include/asm/pgtable.h
374
#define pmd_pfn(pmd) (__pa(pmd_val(pmd)) >> PAGE_SHIFT)
arch/microblaze/include/asm/pgtable.h
377
#define pmd_page(pmd) (pfn_to_page(__pa(pmd_val(pmd)) >> PAGE_SHIFT))
arch/microblaze/mm/pgtable.c
200
pmd_t *pmd;
arch/microblaze/mm/pgtable.c
208
pmd = pmd_offset(pud, addr & PAGE_MASK);
arch/microblaze/mm/pgtable.c
209
if (pmd_present(*pmd)) {
arch/microblaze/mm/pgtable.c
210
pte = pte_offset_kernel(pmd, addr & PAGE_MASK);
arch/mips/include/asm/pgalloc.h
20
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
arch/mips/include/asm/pgalloc.h
23
set_pmd(pmd, __pmd((unsigned long)pte));
arch/mips/include/asm/pgalloc.h
26
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
arch/mips/include/asm/pgalloc.h
29
set_pmd(pmd, __pmd((unsigned long)page_address(pte)));
arch/mips/include/asm/pgalloc.h
39
static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
arch/mips/include/asm/pgalloc.h
41
set_pud(pud, __pud((unsigned long)pmd));
arch/mips/include/asm/pgalloc.h
57
pmd_t *pmd;
arch/mips/include/asm/pgalloc.h
69
pmd = ptdesc_address(ptdesc);
arch/mips/include/asm/pgalloc.h
70
pmd_init(pmd);
arch/mips/include/asm/pgalloc.h
71
return pmd;
arch/mips/include/asm/pgtable-32.h
124
static inline int pmd_none(pmd_t pmd)
arch/mips/include/asm/pgtable-32.h
126
return pmd_val(pmd) == (unsigned long) invalid_pte_table;
arch/mips/include/asm/pgtable-32.h
129
static inline int pmd_bad(pmd_t pmd)
arch/mips/include/asm/pgtable-32.h
133
if (unlikely(pmd_val(pmd) & _PAGE_HUGE))
arch/mips/include/asm/pgtable-32.h
137
if (unlikely(pmd_val(pmd) & ~PAGE_MASK))
arch/mips/include/asm/pgtable-32.h
143
static inline int pmd_present(pmd_t pmd)
arch/mips/include/asm/pgtable-32.h
145
return pmd_val(pmd) != (unsigned long) invalid_pte_table;
arch/mips/include/asm/pgtable-64.h
229
typedef struct { unsigned long pmd; } pmd_t;
arch/mips/include/asm/pgtable-64.h
230
#define pmd_val(x) ((x).pmd)
arch/mips/include/asm/pgtable-64.h
240
static inline int pmd_none(pmd_t pmd)
arch/mips/include/asm/pgtable-64.h
242
return pmd_val(pmd) == (unsigned long) invalid_pte_table;
arch/mips/include/asm/pgtable-64.h
245
static inline int pmd_bad(pmd_t pmd)
arch/mips/include/asm/pgtable-64.h
249
if (unlikely(pmd_val(pmd) & _PAGE_HUGE))
arch/mips/include/asm/pgtable-64.h
253
if (unlikely(pmd_val(pmd) & ~PAGE_MASK))
arch/mips/include/asm/pgtable-64.h
259
static inline int pmd_present(pmd_t pmd)
arch/mips/include/asm/pgtable-64.h
262
if (unlikely(pmd_val(pmd) & _PAGE_HUGE))
arch/mips/include/asm/pgtable-64.h
263
return pmd_val(pmd) & _PAGE_PRESENT;
arch/mips/include/asm/pgtable-64.h
266
return pmd_val(pmd) != (unsigned long) invalid_pte_table;
arch/mips/include/asm/pgtable.h
413
static inline int pmd_write(pmd_t pmd)
arch/mips/include/asm/pgtable.h
415
return !!(pmd_val(pmd) & _PAGE_WRITE);
arch/mips/include/asm/pgtable.h
418
static inline struct page *pmd_page(pmd_t pmd)
arch/mips/include/asm/pgtable.h
420
if (pmd_val(pmd) & _PAGE_HUGE)
arch/mips/include/asm/pgtable.h
421
return pfn_to_page(pmd_pfn(pmd));
arch/mips/include/asm/pgtable.h
423
return pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT);
arch/mips/include/asm/pgtable.h
621
static inline int pmd_trans_huge(pmd_t pmd)
arch/mips/include/asm/pgtable.h
623
return !!(pmd_val(pmd) & _PAGE_HUGE);
arch/mips/include/asm/pgtable.h
626
static inline pmd_t pmd_mkhuge(pmd_t pmd)
arch/mips/include/asm/pgtable.h
628
pmd_val(pmd) |= _PAGE_HUGE;
arch/mips/include/asm/pgtable.h
630
return pmd;
arch/mips/include/asm/pgtable.h
634
pmd_t *pmdp, pmd_t pmd);
arch/mips/include/asm/pgtable.h
636
static inline pmd_t pmd_wrprotect(pmd_t pmd)
arch/mips/include/asm/pgtable.h
638
pmd_val(pmd) &= ~(_PAGE_WRITE | _PAGE_SILENT_WRITE);
arch/mips/include/asm/pgtable.h
639
return pmd;
arch/mips/include/asm/pgtable.h
642
static inline pmd_t pmd_mkwrite_novma(pmd_t pmd)
arch/mips/include/asm/pgtable.h
644
pmd_val(pmd) |= _PAGE_WRITE;
arch/mips/include/asm/pgtable.h
645
if (pmd_val(pmd) & _PAGE_MODIFIED)
arch/mips/include/asm/pgtable.h
646
pmd_val(pmd) |= _PAGE_SILENT_WRITE;
arch/mips/include/asm/pgtable.h
648
return pmd;
arch/mips/include/asm/pgtable.h
65
#define pmd_phys(pmd) virt_to_phys((void *)pmd_val(pmd))
arch/mips/include/asm/pgtable.h
652
static inline int pmd_dirty(pmd_t pmd)
arch/mips/include/asm/pgtable.h
654
return !!(pmd_val(pmd) & _PAGE_MODIFIED);
arch/mips/include/asm/pgtable.h
657
static inline pmd_t pmd_mkclean(pmd_t pmd)
arch/mips/include/asm/pgtable.h
659
pmd_val(pmd) &= ~(_PAGE_MODIFIED | _PAGE_SILENT_WRITE);
arch/mips/include/asm/pgtable.h
660
return pmd;
arch/mips/include/asm/pgtable.h
663
static inline pmd_t pmd_mkdirty(pmd_t pmd)
arch/mips/include/asm/pgtable.h
665
pmd_val(pmd) |= _PAGE_MODIFIED | _PAGE_SOFT_DIRTY;
arch/mips/include/asm/pgtable.h
666
if (pmd_val(pmd) & _PAGE_WRITE)
arch/mips/include/asm/pgtable.h
667
pmd_val(pmd) |= _PAGE_SILENT_WRITE;
arch/mips/include/asm/pgtable.h
669
return pmd;
arch/mips/include/asm/pgtable.h
67
static inline unsigned long pmd_pfn(pmd_t pmd)
arch/mips/include/asm/pgtable.h
673
static inline int pmd_young(pmd_t pmd)
arch/mips/include/asm/pgtable.h
675
return !!(pmd_val(pmd) & _PAGE_ACCESSED);
arch/mips/include/asm/pgtable.h
678
static inline pmd_t pmd_mkold(pmd_t pmd)
arch/mips/include/asm/pgtable.h
680
pmd_val(pmd) &= ~(_PAGE_ACCESSED|_PAGE_SILENT_READ);
arch/mips/include/asm/pgtable.h
682
return pmd;
arch/mips/include/asm/pgtable.h
685
static inline pmd_t pmd_mkyoung(pmd_t pmd)
arch/mips/include/asm/pgtable.h
687
pmd_val(pmd) |= _PAGE_ACCESSED;
arch/mips/include/asm/pgtable.h
689
if (!(pmd_val(pmd) & _PAGE_NO_READ))
arch/mips/include/asm/pgtable.h
69
return pmd_val(pmd) >> PFN_PTE_SHIFT;
arch/mips/include/asm/pgtable.h
690
pmd_val(pmd) |= _PAGE_SILENT_READ;
arch/mips/include/asm/pgtable.h
692
return pmd;
arch/mips/include/asm/pgtable.h
696
static inline int pmd_soft_dirty(pmd_t pmd)
arch/mips/include/asm/pgtable.h
698
return !!(pmd_val(pmd) & _PAGE_SOFT_DIRTY);
arch/mips/include/asm/pgtable.h
701
static inline pmd_t pmd_mksoft_dirty(pmd_t pmd)
arch/mips/include/asm/pgtable.h
703
pmd_val(pmd) |= _PAGE_SOFT_DIRTY;
arch/mips/include/asm/pgtable.h
704
return pmd;
arch/mips/include/asm/pgtable.h
707
static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd)
arch/mips/include/asm/pgtable.h
709
pmd_val(pmd) &= ~(_PAGE_SOFT_DIRTY);
arch/mips/include/asm/pgtable.h
710
return pmd;
arch/mips/include/asm/pgtable.h
715
static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
arch/mips/include/asm/pgtable.h
717
pmd_val(pmd) = (pmd_val(pmd) & (_PAGE_CHG_MASK | _PAGE_HUGE)) |
arch/mips/include/asm/pgtable.h
719
return pmd;
arch/mips/include/asm/pgtable.h
722
static inline pmd_t pmd_mkinvalid(pmd_t pmd)
arch/mips/include/asm/pgtable.h
724
pmd_val(pmd) &= ~(_PAGE_PRESENT | _PAGE_VALID | _PAGE_DIRTY);
arch/mips/include/asm/pgtable.h
726
return pmd;
arch/mips/include/asm/pgtable.h
73
#define pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT))
arch/mips/include/asm/pgtable.h
747
#define pmd_leaf(pmd) ((pmd_val(pmd) & _PAGE_HUGE) != 0)
arch/mips/include/asm/pgtable.h
76
#define pmd_page_vaddr(pmd) pmd_val(pmd)
arch/mips/kvm/mmu.c
109
pmd_t *pmd;
arch/mips/kvm/mmu.c
128
pmd = pmd_offset(pud, addr);
arch/mips/kvm/mmu.c
129
if (pmd_none(*pmd)) {
arch/mips/kvm/mmu.c
136
pmd_populate_kernel(NULL, pmd, new_pte);
arch/mips/kvm/mmu.c
138
return pte_offset_kernel(pmd, addr);
arch/mips/kvm/mmu.c
171
static bool kvm_mips_flush_gpa_pmd(pmd_t *pmd, unsigned long start_gpa,
arch/mips/kvm/mmu.c
182
if (!pmd_present(pmd[i]))
arch/mips/kvm/mmu.c
185
pte = pte_offset_kernel(pmd + i, 0);
arch/mips/kvm/mmu.c
190
pmd_clear(pmd + i);
arch/mips/kvm/mmu.c
202
pmd_t *pmd;
arch/mips/kvm/mmu.c
213
pmd = pmd_offset(pud + i, 0);
arch/mips/kvm/mmu.c
217
if (kvm_mips_flush_gpa_pmd(pmd, start_gpa, end)) {
arch/mips/kvm/mmu.c
219
pmd_free(NULL, pmd);
arch/mips/kvm/mmu.c
302
static int kvm_mips_##name##_pmd(pmd_t *pmd, unsigned long start, \
arch/mips/kvm/mmu.c
313
if (!pmd_present(pmd[i])) \
arch/mips/kvm/mmu.c
316
pte = pte_offset_kernel(pmd + i, 0); \
arch/mips/kvm/mmu.c
329
pmd_t *pmd; \
arch/mips/kvm/mmu.c
339
pmd = pmd_offset(pud + i, 0); \
arch/mips/kvm/mmu.c
343
ret |= kvm_mips_##name##_pmd(pmd, start, cur_end); \
arch/mips/mm/fault.c
289
pmd_t *pmd, *pmd_k;
arch/mips/mm/fault.c
309
pmd = pmd_offset(pud, address);
arch/mips/mm/fault.c
313
set_pmd(pmd, *pmd_k);
arch/mips/mm/hugetlbpage.c
47
pmd_t *pmd = NULL;
arch/mips/mm/hugetlbpage.c
55
pmd = pmd_offset(pud, addr);
arch/mips/mm/hugetlbpage.c
58
return (pte_t *) pmd;
arch/mips/mm/init.c
233
pmd_t *pmd;
arch/mips/mm/init.c
247
pmd = (pmd_t *)pud;
arch/mips/mm/init.c
248
for (; (k < PTRS_PER_PMD) && (vaddr < end); pmd++, k++) {
arch/mips/mm/init.c
249
if (pmd_none(*pmd)) {
arch/mips/mm/init.c
257
set_pmd(pmd, __pmd((unsigned long)pte));
arch/mips/mm/init.c
258
BUG_ON(pte != pte_offset_kernel(pmd, 0));
arch/mips/mm/pgtable-32.c
35
pmd_t *pmdp, pmd_t pmd)
arch/mips/mm/pgtable-32.c
37
*pmdp = pmd;
arch/mips/mm/pgtable-32.c
49
pmd_t *pmd;
arch/mips/mm/pgtable-32.c
75
pmd = pmd_offset(pud, vaddr);
arch/mips/mm/pgtable-32.c
76
pte = pte_offset_kernel(pmd, vaddr);
arch/mips/mm/pgtable-64.c
94
pmd_t *pmdp, pmd_t pmd)
arch/mips/mm/pgtable-64.c
96
*pmdp = pmd;
arch/mips/mm/tlbex.c
679
unsigned int pmd, int lid)
arch/mips/mm/tlbex.c
681
UASM_i_LW(p, tmp, 0, pmd);
arch/nios2/include/asm/pgalloc.h
17
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
arch/nios2/include/asm/pgalloc.h
20
set_pmd(pmd, __pmd((unsigned long)pte));
arch/nios2/include/asm/pgalloc.h
23
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
arch/nios2/include/asm/pgalloc.h
26
set_pmd(pmd, __pmd((unsigned long)page_address(pte)));
arch/nios2/include/asm/pgtable.h
161
static inline int pmd_present(pmd_t pmd)
arch/nios2/include/asm/pgtable.h
163
return (pmd_val(pmd) != (unsigned long) invalid_pte_table)
arch/nios2/include/asm/pgtable.h
164
&& (pmd_val(pmd) != 0UL);
arch/nios2/include/asm/pgtable.h
202
static inline int pmd_none(pmd_t pmd)
arch/nios2/include/asm/pgtable.h
204
return (pmd_val(pmd) ==
arch/nios2/include/asm/pgtable.h
205
(unsigned long) invalid_pte_table) || (pmd_val(pmd) == 0UL);
arch/nios2/include/asm/pgtable.h
208
#define pmd_bad(pmd) (pmd_val(pmd) & ~PAGE_MASK)
arch/nios2/include/asm/pgtable.h
224
#define pmd_phys(pmd) virt_to_phys((void *)pmd_val(pmd))
arch/nios2/include/asm/pgtable.h
225
#define pmd_pfn(pmd) (pmd_phys(pmd) >> PAGE_SHIFT)
arch/nios2/include/asm/pgtable.h
226
#define pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT))
arch/nios2/include/asm/pgtable.h
228
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
arch/nios2/include/asm/pgtable.h
230
return pmd_val(pmd);
arch/nios2/mm/fault.c
233
pmd_t *pmd, *pmd_k;
arch/nios2/mm/fault.c
251
pmd = pmd_offset(pud, address);
arch/nios2/mm/fault.c
255
set_pmd(pmd, *pmd_k);
arch/nios2/mm/ioremap.c
100
pmd = pmd_alloc(&init_mm, pud, address);
arch/nios2/mm/ioremap.c
101
if (!pmd)
arch/nios2/mm/ioremap.c
103
if (remap_area_pmd(pmd, address, end - address,
arch/nios2/mm/ioremap.c
50
static inline int remap_area_pmd(pmd_t *pmd, unsigned long address,
arch/nios2/mm/ioremap.c
64
pte_t *pte = pte_alloc_kernel(pmd, address);
arch/nios2/mm/ioremap.c
71
pmd++;
arch/nios2/mm/ioremap.c
91
pmd_t *pmd;
arch/openrisc/include/asm/pgalloc.h
28
#define pmd_populate_kernel(mm, pmd, pte) \
arch/openrisc/include/asm/pgalloc.h
29
set_pmd(pmd, __pmd(_KERNPG_TABLE + __pa(pte)))
arch/openrisc/include/asm/pgalloc.h
31
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
arch/openrisc/include/asm/pgalloc.h
34
set_pmd(pmd, __pmd(_KERNPG_TABLE +
arch/openrisc/include/asm/pgtable.h
330
#define pmd_pfn(pmd) (pmd_val(pmd) >> PAGE_SHIFT)
arch/openrisc/include/asm/pgtable.h
331
#define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT))
arch/openrisc/include/asm/pgtable.h
333
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
arch/openrisc/include/asm/pgtable.h
335
return ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK));
arch/openrisc/mm/fault.c
298
pmd_t *pmd, *pmd_k;
arch/openrisc/mm/fault.c
333
pmd = pmd_offset(pud, address);
arch/openrisc/mm/fault.c
339
set_pmd(pmd, *pmd_k);
arch/openrisc/mm/init.c
203
pmd_t *pmd;
arch/openrisc/mm/init.c
208
pmd = pmd_offset(pud, va);
arch/openrisc/mm/init.c
209
pte = pte_alloc_kernel(pmd, va);
arch/parisc/include/asm/page.h
41
typedef struct { __u32 pmd; } pmd_t;
arch/parisc/include/asm/page.h
44
#define pmd_val(x) ((x).pmd + 0)
arch/parisc/include/asm/pgalloc.h
26
static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
arch/parisc/include/asm/pgalloc.h
29
(__u32)(__pa((unsigned long)pmd) >> PxD_VALUE_SHIFT)));
arch/parisc/include/asm/pgalloc.h
51
pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte)
arch/parisc/include/asm/pgalloc.h
53
set_pmd(pmd, __pmd((PxD_FLAG_PRESENT | PxD_FLAG_VALID)
arch/parisc/include/asm/pgalloc.h
57
#define pmd_populate(mm, pmd, pte_page) \
arch/parisc/include/asm/pgalloc.h
58
pmd_populate_kernel(mm, pmd, page_address(pte_page))
arch/parisc/include/asm/pgtable.h
291
static inline void pmd_clear(pmd_t *pmd) {
arch/parisc/include/asm/pgtable.h
292
set_pmd(pmd, __pmd(0));
arch/parisc/include/asm/pgtable.h
366
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
arch/parisc/include/asm/pgtable.h
368
return ((unsigned long) __va(pmd_address(pmd)));
arch/parisc/include/asm/pgtable.h
371
#define pmd_pfn(pmd) (pmd_address(pmd) >> PAGE_SHIFT)
arch/parisc/include/asm/pgtable.h
372
#define __pmd_page(pmd) ((unsigned long) __va(pmd_address(pmd)))
arch/parisc/include/asm/pgtable.h
373
#define pmd_page(pmd) virt_to_page((void *)__pmd_page(pmd))
arch/parisc/include/asm/tlb.h
8
#define __pmd_free_tlb(tlb, pmd, addr) tlb_remove_ptdesc((tlb), virt_to_ptdesc(pmd))
arch/parisc/kernel/cache.c
416
pmd_t *pmd;
arch/parisc/kernel/cache.c
423
pmd = pmd_offset(pud, addr);
arch/parisc/kernel/cache.c
424
if (!pmd_none(*pmd))
arch/parisc/kernel/cache.c
425
ptep = pte_offset_map(pmd, addr);
arch/parisc/kernel/pci-dma.c
104
static inline int map_pmd_uncached(pmd_t * pmd, unsigned long vaddr,
arch/parisc/kernel/pci-dma.c
115
pte_t * pte = pte_alloc_kernel(pmd, vaddr);
arch/parisc/kernel/pci-dma.c
122
pmd++;
arch/parisc/kernel/pci-dma.c
137
pmd_t *pmd;
arch/parisc/kernel/pci-dma.c
141
pmd = pmd_alloc(NULL, pud, vaddr);
arch/parisc/kernel/pci-dma.c
143
if (!pmd)
arch/parisc/kernel/pci-dma.c
145
if (map_pmd_uncached(pmd, vaddr, end - vaddr, &paddr))
arch/parisc/kernel/pci-dma.c
153
static inline void unmap_uncached_pte(pmd_t * pmd, unsigned long vaddr,
arch/parisc/kernel/pci-dma.c
160
if (pmd_none(*pmd))
arch/parisc/kernel/pci-dma.c
162
if (pmd_bad(*pmd)) {
arch/parisc/kernel/pci-dma.c
163
pmd_ERROR(*pmd);
arch/parisc/kernel/pci-dma.c
164
pmd_clear(pmd);
arch/parisc/kernel/pci-dma.c
167
pte = pte_offset_kernel(pmd, vaddr);
arch/parisc/kernel/pci-dma.c
192
pmd_t * pmd;
arch/parisc/kernel/pci-dma.c
203
pmd = pmd_offset(pud_offset(p4d_offset(dir, vaddr), vaddr), vaddr);
arch/parisc/kernel/pci-dma.c
209
unmap_uncached_pte(pmd, orig_vaddr, end - vaddr);
arch/parisc/kernel/pci-dma.c
212
pmd++;
arch/parisc/mm/fixmap.c
19
pmd_t *pmd = pmd_offset(pud, vaddr);
arch/parisc/mm/fixmap.c
22
pte = pte_offset_kernel(pmd, vaddr);
arch/parisc/mm/hugetlbpage.c
32
pmd_t *pmd;
arch/parisc/mm/hugetlbpage.c
46
pmd = pmd_alloc(mm, pud, addr);
arch/parisc/mm/hugetlbpage.c
47
if (pmd)
arch/parisc/mm/hugetlbpage.c
48
pte = pte_alloc_huge(mm, pmd, addr);
arch/parisc/mm/hugetlbpage.c
59
pmd_t *pmd;
arch/parisc/mm/hugetlbpage.c
70
pmd = pmd_offset(pud, addr);
arch/parisc/mm/hugetlbpage.c
71
if (!pmd_none(*pmd))
arch/parisc/mm/hugetlbpage.c
72
pte = pte_offset_huge(pmd, addr);
arch/parisc/mm/init.c
347
pmd_t *pmd;
arch/parisc/mm/init.c
380
pmd = memblock_alloc_or_panic(PAGE_SIZE << PMD_TABLE_ORDER,
arch/parisc/mm/init.c
382
pud_populate(NULL, pud, pmd);
arch/parisc/mm/init.c
386
pmd = pmd_offset(pud, vaddr);
arch/parisc/mm/init.c
387
for (tmp1 = start_pmd; tmp1 < PTRS_PER_PMD; tmp1++, pmd++) {
arch/parisc/mm/init.c
388
if (pmd_none(*pmd)) {
arch/parisc/mm/init.c
390
pmd_populate_kernel(NULL, pmd, pg_table);
arch/parisc/mm/init.c
393
pg_table = pte_offset_kernel(pmd, vaddr);
arch/parisc/mm/init.c
674
pmd_t *pmd;
arch/parisc/mm/init.c
680
pmd = memblock_alloc_or_panic(PAGE_SIZE << PMD_TABLE_ORDER,
arch/parisc/mm/init.c
682
pud_populate(NULL, pud, pmd);
arch/parisc/mm/init.c
686
pmd = pmd_offset(pud, addr);
arch/parisc/mm/init.c
690
pmd_populate_kernel(&init_mm, pmd, pte);
arch/powerpc/include/asm/book3s/32/pgtable.h
216
#define pmd_none(pmd) (!pmd_val(pmd))
arch/powerpc/include/asm/book3s/32/pgtable.h
217
#define pmd_bad(pmd) (pmd_val(pmd) & _PMD_BAD)
arch/powerpc/include/asm/book3s/32/pgtable.h
218
#define pmd_present(pmd) (pmd_val(pmd) & _PMD_PRESENT_MASK)
arch/powerpc/include/asm/book3s/32/pgtable.h
345
#define pmd_pfn(pmd) (pmd_val(pmd) >> PAGE_SHIFT)
arch/powerpc/include/asm/book3s/32/pgtable.h
346
#define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd))
arch/powerpc/include/asm/book3s/64/hash-4k.h
147
static inline int hash__pmd_trans_huge(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/hash-4k.h
152
static inline pmd_t hash__pmd_mkhuge(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/hash-4k.h
155
return pmd;
arch/powerpc/include/asm/book3s/64/hash-64k.h
260
static inline int hash__pmd_trans_huge(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/hash-64k.h
262
return !!((pmd_val(pmd) & (_PAGE_PTE | H_PAGE_THP_HUGE)) ==
arch/powerpc/include/asm/book3s/64/hash-64k.h
266
static inline pmd_t hash__pmd_mkhuge(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/hash-64k.h
268
return __pmd(pmd_val(pmd) | (_PAGE_PTE | H_PAGE_THP_HUGE));
arch/powerpc/include/asm/book3s/64/hash.h
141
#define hash__pmd_bad(pmd) (pmd_val(pmd) & H_PMD_BAD_BITS)
arch/powerpc/include/asm/book3s/64/pgalloc.h
131
static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
arch/powerpc/include/asm/book3s/64/pgalloc.h
133
*pud = __pud(__pgtable_ptr_val(pmd) | PUD_VAL_BITS);
arch/powerpc/include/asm/book3s/64/pgalloc.h
147
static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
arch/powerpc/include/asm/book3s/64/pgalloc.h
149
pmd_fragment_free((unsigned long *)pmd);
arch/powerpc/include/asm/book3s/64/pgalloc.h
152
static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
arch/powerpc/include/asm/book3s/64/pgalloc.h
155
return pgtable_free_tlb(tlb, pmd, PMD_INDEX);
arch/powerpc/include/asm/book3s/64/pgalloc.h
158
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
arch/powerpc/include/asm/book3s/64/pgalloc.h
161
*pmd = __pmd(__pgtable_ptr_val(pte) | PMD_VAL_BITS);
arch/powerpc/include/asm/book3s/64/pgalloc.h
164
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
arch/powerpc/include/asm/book3s/64/pgalloc.h
167
*pmd = __pmd(__pgtable_ptr_val(pte_page) | PMD_VAL_BITS);
arch/powerpc/include/asm/book3s/64/pgtable.h
1034
static inline pte_t pmd_pte(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/pgtable.h
1036
return __pte_raw(pmd_raw(pmd));
arch/powerpc/include/asm/book3s/64/pgtable.h
1044
static inline pte_t *pmdp_ptep(pmd_t *pmd)
arch/powerpc/include/asm/book3s/64/pgtable.h
1046
return (pte_t *)pmd;
arch/powerpc/include/asm/book3s/64/pgtable.h
1048
#define pmd_pfn(pmd) pte_pfn(pmd_pte(pmd))
arch/powerpc/include/asm/book3s/64/pgtable.h
1049
#define pmd_dirty(pmd) pte_dirty(pmd_pte(pmd))
arch/powerpc/include/asm/book3s/64/pgtable.h
1050
#define pmd_young(pmd) pte_young(pmd_pte(pmd))
arch/powerpc/include/asm/book3s/64/pgtable.h
1051
#define pmd_mkold(pmd) pte_pmd(pte_mkold(pmd_pte(pmd)))
arch/powerpc/include/asm/book3s/64/pgtable.h
1052
#define pmd_wrprotect(pmd) pte_pmd(pte_wrprotect(pmd_pte(pmd)))
arch/powerpc/include/asm/book3s/64/pgtable.h
1053
#define pmd_mkdirty(pmd) pte_pmd(pte_mkdirty(pmd_pte(pmd)))
arch/powerpc/include/asm/book3s/64/pgtable.h
1054
#define pmd_mkclean(pmd) pte_pmd(pte_mkclean(pmd_pte(pmd)))
arch/powerpc/include/asm/book3s/64/pgtable.h
1055
#define pmd_mkyoung(pmd) pte_pmd(pte_mkyoung(pmd_pte(pmd)))
arch/powerpc/include/asm/book3s/64/pgtable.h
1056
#define pmd_mkwrite_novma(pmd) pte_pmd(pte_mkwrite_novma(pmd_pte(pmd)))
arch/powerpc/include/asm/book3s/64/pgtable.h
1059
#define pmd_soft_dirty(pmd) pte_soft_dirty(pmd_pte(pmd))
arch/powerpc/include/asm/book3s/64/pgtable.h
1060
#define pmd_mksoft_dirty(pmd) pte_pmd(pte_mksoft_dirty(pmd_pte(pmd)))
arch/powerpc/include/asm/book3s/64/pgtable.h
1061
#define pmd_clear_soft_dirty(pmd) pte_pmd(pte_clear_soft_dirty(pmd_pte(pmd)))
arch/powerpc/include/asm/book3s/64/pgtable.h
1064
#define pmd_swp_mksoft_dirty(pmd) pte_pmd(pte_swp_mksoft_dirty(pmd_pte(pmd)))
arch/powerpc/include/asm/book3s/64/pgtable.h
1065
#define pmd_swp_soft_dirty(pmd) pte_swp_soft_dirty(pmd_pte(pmd))
arch/powerpc/include/asm/book3s/64/pgtable.h
1066
#define pmd_swp_clear_soft_dirty(pmd) pte_pmd(pte_swp_clear_soft_dirty(pmd_pte(pmd)))
arch/powerpc/include/asm/book3s/64/pgtable.h
1071
static inline int pmd_protnone(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/pgtable.h
1073
return pte_protnone(pmd_pte(pmd));
arch/powerpc/include/asm/book3s/64/pgtable.h
1077
#define pmd_write(pmd) pte_write(pmd_pte(pmd))
arch/powerpc/include/asm/book3s/64/pgtable.h
1080
static inline bool pmd_access_permitted(pmd_t pmd, bool write)
arch/powerpc/include/asm/book3s/64/pgtable.h
1092
if (pmd_is_serializing(pmd))
arch/powerpc/include/asm/book3s/64/pgtable.h
1095
return pte_access_permitted(pmd_pte(pmd), write);
arch/powerpc/include/asm/book3s/64/pgtable.h
1099
static inline bool pmd_user_accessible_page(pmd_t pmd, unsigned long addr)
arch/powerpc/include/asm/book3s/64/pgtable.h
1101
return pmd_leaf(pmd) && pte_user_accessible_page(pmd_pte(pmd), addr);
arch/powerpc/include/asm/book3s/64/pgtable.h
1107
extern pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot);
arch/powerpc/include/asm/book3s/64/pgtable.h
1110
pmd_t *pmdp, pmd_t pmd);
arch/powerpc/include/asm/book3s/64/pgtable.h
1115
unsigned long addr, pmd_t *pmd)
arch/powerpc/include/asm/book3s/64/pgtable.h
1213
static inline int pmd_trans_huge(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/pgtable.h
1215
if (!pmd_present(pmd))
arch/powerpc/include/asm/book3s/64/pgtable.h
1219
return radix__pmd_trans_huge(pmd);
arch/powerpc/include/asm/book3s/64/pgtable.h
1220
return hash__pmd_trans_huge(pmd);
arch/powerpc/include/asm/book3s/64/pgtable.h
1251
static inline pmd_t __pmd_mkhuge(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/pgtable.h
1254
return radix__pmd_mkhuge(pmd);
arch/powerpc/include/asm/book3s/64/pgtable.h
1255
return hash__pmd_mkhuge(pmd);
arch/powerpc/include/asm/book3s/64/pgtable.h
1269
static inline pmd_t pmd_mkhuge(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/pgtable.h
1273
WARN_ON((pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE)) == 0);
arch/powerpc/include/asm/book3s/64/pgtable.h
1275
WARN_ON((pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE | H_PAGE_THP_HUGE)) !=
arch/powerpc/include/asm/book3s/64/pgtable.h
1278
return pmd;
arch/powerpc/include/asm/book3s/64/pgtable.h
268
static inline bool pmd_leaf(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/pgtable.h
270
return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
arch/powerpc/include/asm/book3s/64/pgtable.h
280
static inline unsigned long pmd_leaf_size(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/pgtable.h
659
#define __pmd_to_swp_entry(pmd) (__pte_to_swp_entry(pmd_pte(pmd)))
arch/powerpc/include/asm/book3s/64/pgtable.h
815
static inline int pmd_none(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/pgtable.h
817
return !pmd_raw(pmd);
arch/powerpc/include/asm/book3s/64/pgtable.h
820
static inline int pmd_present(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/pgtable.h
828
if (pmd_raw(pmd) & cpu_to_be64(_PAGE_PRESENT | _PAGE_INVALID))
arch/powerpc/include/asm/book3s/64/pgtable.h
834
static inline int pmd_is_serializing(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/pgtable.h
844
if ((pmd_raw(pmd) & cpu_to_be64(_PAGE_PRESENT | _PAGE_INVALID)) ==
arch/powerpc/include/asm/book3s/64/pgtable.h
851
static inline int pmd_bad(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/pgtable.h
854
return radix__pmd_bad(pmd);
arch/powerpc/include/asm/book3s/64/pgtable.h
855
return hash__pmd_bad(pmd);
arch/powerpc/include/asm/book3s/64/pgtable.h
881
extern struct page *pmd_page(pmd_t pmd);
arch/powerpc/include/asm/book3s/64/pgtable.h
909
#define pud_soft_dirty(pmd) pte_soft_dirty(pud_pte(pud))
arch/powerpc/include/asm/book3s/64/pgtable.h
910
#define pud_mksoft_dirty(pmd) pte_pud(pte_mksoft_dirty(pud_pte(pud)))
arch/powerpc/include/asm/book3s/64/pgtable.h
911
#define pud_clear_soft_dirty(pmd) pte_pud(pte_clear_soft_dirty(pud_pte(pud)))
arch/powerpc/include/asm/book3s/64/radix.h
238
static inline int radix__pmd_bad(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/radix.h
240
return !!(pmd_val(pmd) & RADIX_PMD_BAD_BITS);
arch/powerpc/include/asm/book3s/64/radix.h
265
static inline int radix__pmd_trans_huge(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/radix.h
267
return (pmd_val(pmd) & _PAGE_PTE) == _PAGE_PTE;
arch/powerpc/include/asm/book3s/64/radix.h
270
static inline pmd_t radix__pmd_mkhuge(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/radix.h
272
return __pmd(pmd_val(pmd) | _PAGE_PTE);
arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
73
void flush_hash_table_pmd_range(struct mm_struct *mm, pmd_t *pmd, unsigned long addr);
arch/powerpc/include/asm/nohash/32/pgtable.h
152
#define pmd_none(pmd) (!pmd_val(pmd))
arch/powerpc/include/asm/nohash/32/pgtable.h
153
#define pmd_bad(pmd) (pmd_val(pmd) & _PMD_BAD)
arch/powerpc/include/asm/nohash/32/pgtable.h
154
#define pmd_present(pmd) (pmd_val(pmd) & _PMD_PRESENT_MASK)
arch/powerpc/include/asm/nohash/32/pgtable.h
168
#define pmd_pfn(pmd) (pmd_val(pmd) >> PAGE_SHIFT)
arch/powerpc/include/asm/nohash/32/pgtable.h
170
#define pmd_page_vaddr(pmd) \
arch/powerpc/include/asm/nohash/32/pgtable.h
171
((const void *)((unsigned long)pmd_val(pmd) & ~(PTE_TABLE_SIZE - 1)))
arch/powerpc/include/asm/nohash/32/pgtable.h
172
#define pmd_pfn(pmd) (__pa(pmd_val(pmd)) >> PAGE_SHIFT)
arch/powerpc/include/asm/nohash/32/pgtable.h
175
#define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd))
arch/powerpc/include/asm/nohash/32/pte-8xx.h
144
static inline unsigned long __pte_leaf_size(pmd_t pmd, pte_t pte)
arch/powerpc/include/asm/nohash/32/pte-8xx.h
148
if (pmd_val(pmd) & _PMD_PAGE_8M)
arch/powerpc/include/asm/nohash/32/pte-8xx.h
168
static inline pte_t *pte_offset_kernel(pmd_t *pmd, unsigned long address);
arch/powerpc/include/asm/nohash/32/pte-8xx.h
175
static inline int number_of_cells_per_pte(pmd_t *pmd, pte_basic_t val, int huge)
arch/powerpc/include/asm/nohash/32/pte-8xx.h
179
else if ((pmd_val(*pmd) & _PMD_PAGE_MASK) == _PMD_PAGE_8M)
arch/powerpc/include/asm/nohash/32/pte-8xx.h
194
pmd_t *pmd = pmd_off(mm, addr);
arch/powerpc/include/asm/nohash/32/pte-8xx.h
196
num = number_of_cells_per_pte(pmd, new, huge);
arch/powerpc/include/asm/nohash/64/pgalloc.h
34
static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
arch/powerpc/include/asm/nohash/64/pgalloc.h
36
pud_set(pud, (unsigned long)pmd);
arch/powerpc/include/asm/nohash/64/pgalloc.h
39
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
arch/powerpc/include/asm/nohash/64/pgalloc.h
42
pmd_set(pmd, (unsigned long)pte);
arch/powerpc/include/asm/nohash/64/pgalloc.h
45
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
arch/powerpc/include/asm/nohash/64/pgalloc.h
48
pmd_set(pmd, (unsigned long)pte_page);
arch/powerpc/include/asm/nohash/64/pgalloc.h
57
static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
arch/powerpc/include/asm/nohash/64/pgalloc.h
59
kmem_cache_free(PGT_CACHE(PMD_CACHE_INDEX), pmd);
arch/powerpc/include/asm/nohash/64/pgalloc.h
62
#define __pmd_free_tlb(tlb, pmd, addr) \
arch/powerpc/include/asm/nohash/64/pgalloc.h
63
pgtable_free_tlb(tlb, pmd, PMD_CACHE_INDEX)
arch/powerpc/include/asm/nohash/64/pgtable.h
101
#define pmd_none(pmd) (!pmd_val(pmd))
arch/powerpc/include/asm/nohash/64/pgtable.h
102
#define pmd_bad(pmd) (!is_kernel_addr(pmd_val(pmd)) \
arch/powerpc/include/asm/nohash/64/pgtable.h
103
|| (pmd_val(pmd) & PMD_BAD_BITS))
arch/powerpc/include/asm/nohash/64/pgtable.h
104
#define pmd_present(pmd) (!pmd_none(pmd))
arch/powerpc/include/asm/nohash/64/pgtable.h
105
#define pmd_page_vaddr(pmd) ((const void *)(pmd_val(pmd) & ~PMD_MASKED_BITS))
arch/powerpc/include/asm/nohash/64/pgtable.h
106
extern struct page *pmd_page(pmd_t pmd);
arch/powerpc/include/asm/nohash/64/pgtable.h
107
#define pmd_pfn(pmd) (page_to_pfn(pmd_page(pmd)))
arch/powerpc/include/asm/nohash/64/pgtable.h
96
static inline pte_t pmd_pte(pmd_t pmd)
arch/powerpc/include/asm/nohash/64/pgtable.h
98
return __pte(pmd_val(pmd));
arch/powerpc/include/asm/nohash/pte-e500.h
104
static inline int pmd_leaf(pmd_t pmd)
arch/powerpc/include/asm/nohash/pte-e500.h
107
return (long)pmd_val(pmd) > 0;
arch/powerpc/include/asm/nohash/pte-e500.h
109
return pmd_val(pmd) & _PAGE_PSIZE_MSK;
arch/powerpc/include/asm/nohash/pte-e500.h
113
static inline unsigned long pmd_leaf_size(pmd_t pmd)
arch/powerpc/include/asm/nohash/pte-e500.h
115
return pte_huge_size(__pte(pmd_val(pmd)));
arch/powerpc/include/asm/pgtable-be-types.h
23
typedef struct { __be64 pmd; } pmd_t;
arch/powerpc/include/asm/pgtable-be-types.h
28
return be64_to_cpu(x.pmd);
arch/powerpc/include/asm/pgtable-be-types.h
33
return x.pmd;
arch/powerpc/include/asm/pgtable-types.h
35
typedef struct { unsigned long pmd; } pmd_t;
arch/powerpc/include/asm/pgtable-types.h
39
return x.pmd;
arch/powerpc/include/asm/pgtable.h
175
static inline pgtable_t pmd_pgtable(pmd_t pmd)
arch/powerpc/include/asm/pgtable.h
177
return (pgtable_t)pmd_page_vaddr(pmd);
arch/powerpc/include/asm/pgtable.h
208
#define pmd_user_accessible_page(pmd, addr) false
arch/powerpc/include/asm/pgtable.h
73
static inline const void *pmd_page_vaddr(pmd_t pmd)
arch/powerpc/include/asm/pgtable.h
75
return __va(pmd_val(pmd) & ~PMD_MASKED_BITS);
arch/powerpc/kvm/book3s_64_mmu_radix.c
1293
pmd_t pmd, *pmdp;
arch/powerpc/kvm/book3s_64_mmu_radix.c
1384
pmd = READ_ONCE(*pmdp);
arch/powerpc/kvm/book3s_64_mmu_radix.c
1385
if (!(pmd_val(pmd) & _PAGE_PRESENT)) {
arch/powerpc/kvm/book3s_64_mmu_radix.c
1389
if (pmd_val(pmd) & _PAGE_PTE) {
arch/powerpc/kvm/book3s_64_mmu_radix.c
1390
pte = pmd_val(pmd);
arch/powerpc/kvm/book3s_64_mmu_radix.c
1395
ptep = pte_offset_kernel(&pmd, gpa);
arch/powerpc/kvm/book3s_64_mmu_radix.c
408
pmd_t *pmd;
arch/powerpc/kvm/book3s_64_mmu_radix.c
410
pmd = kmem_cache_alloc(kvm_pmd_cache, GFP_KERNEL);
arch/powerpc/kvm/book3s_64_mmu_radix.c
412
kmemleak_ignore(pmd);
arch/powerpc/kvm/book3s_64_mmu_radix.c
414
return pmd;
arch/powerpc/kvm/book3s_64_mmu_radix.c
497
static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
arch/powerpc/kvm/book3s_64_mmu_radix.c
501
pmd_t *p = pmd;
arch/powerpc/kvm/book3s_64_mmu_radix.c
523
kvmppc_pmd_free(pmd);
arch/powerpc/kvm/book3s_64_mmu_radix.c
538
pmd_t *pmd;
arch/powerpc/kvm/book3s_64_mmu_radix.c
540
pmd = pmd_offset(p, 0);
arch/powerpc/kvm/book3s_64_mmu_radix.c
541
kvmppc_unmap_free_pmd(kvm, pmd, true, lpid);
arch/powerpc/kvm/book3s_64_mmu_radix.c
574
static void kvmppc_unmap_free_pmd_entry_table(struct kvm *kvm, pmd_t *pmd,
arch/powerpc/kvm/book3s_64_mmu_radix.c
577
pte_t *pte = pte_offset_kernel(pmd, 0);
arch/powerpc/kvm/book3s_64_mmu_radix.c
584
pmd_clear(pmd);
arch/powerpc/kvm/book3s_64_mmu_radix.c
593
pmd_t *pmd = pmd_offset(pud, 0);
arch/powerpc/kvm/book3s_64_mmu_radix.c
603
kvmppc_unmap_free_pmd(kvm, pmd, false, lpid);
arch/powerpc/kvm/book3s_64_mmu_radix.c
623
pmd_t *pmd, *new_pmd = NULL;
arch/powerpc/kvm/book3s_64_mmu_radix.c
637
pmd = NULL;
arch/powerpc/kvm/book3s_64_mmu_radix.c
639
pmd = pmd_offset(pud, gpa);
arch/powerpc/kvm/book3s_64_mmu_radix.c
643
if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
arch/powerpc/kvm/book3s_64_mmu_radix.c
711
pmd = pmd_offset(pud, gpa);
arch/powerpc/kvm/book3s_64_mmu_radix.c
712
if (pmd_leaf(*pmd)) {
arch/powerpc/kvm/book3s_64_mmu_radix.c
717
if (pmd_raw(*pmd) == pte_raw(pte)) {
arch/powerpc/kvm/book3s_64_mmu_radix.c
722
WARN_ON_ONCE((pmd_val(*pmd) ^ pte_val(pte)) &
arch/powerpc/kvm/book3s_64_mmu_radix.c
724
kvmppc_radix_update_pte(kvm, pmdp_ptep(pmd),
arch/powerpc/kvm/book3s_64_mmu_radix.c
739
kvmppc_unmap_pte(kvm, pmdp_ptep(pmd), lgpa, PMD_SHIFT, NULL,
arch/powerpc/kvm/book3s_64_mmu_radix.c
743
if (!pmd_none(*pmd)) {
arch/powerpc/kvm/book3s_64_mmu_radix.c
749
kvmppc_unmap_free_pmd_entry_table(kvm, pmd, gpa, lpid);
arch/powerpc/kvm/book3s_64_mmu_radix.c
751
kvmppc_radix_set_pte_at(kvm, gpa, pmdp_ptep(pmd), pte);
arch/powerpc/kvm/book3s_64_mmu_radix.c
757
if (pmd_none(*pmd)) {
arch/powerpc/kvm/book3s_64_mmu_radix.c
760
pmd_populate(kvm->mm, pmd, new_ptep);
arch/powerpc/kvm/book3s_64_mmu_radix.c
763
ptep = pte_offset_kernel(pmd, gpa);
arch/powerpc/mm/book3s32/mmu.c
303
pmd_t *pmd;
arch/powerpc/mm/book3s32/mmu.c
307
pmd = pmd_off(mm, ea);
arch/powerpc/mm/book3s32/mmu.c
308
if (!pmd_none(*pmd))
arch/powerpc/mm/book3s32/mmu.c
309
add_hash_page(mm->context.id, ea, pmd_val(*pmd));
arch/powerpc/mm/book3s32/tlb.c
100
pmd_t *pmd;
arch/powerpc/mm/book3s32/tlb.c
103
pmd = pmd_off(mm, vmaddr);
arch/powerpc/mm/book3s32/tlb.c
104
if (!pmd_none(*pmd))
arch/powerpc/mm/book3s32/tlb.c
105
flush_hash_pages(mm->context.id, vmaddr, pmd_val(*pmd), 1);
arch/powerpc/mm/book3s32/tlb.c
52
pmd_t *pmd;
arch/powerpc/mm/book3s32/tlb.c
61
pmd = pmd_off(mm, start);
arch/powerpc/mm/book3s32/tlb.c
66
if (!pmd_none(*pmd)) {
arch/powerpc/mm/book3s32/tlb.c
68
flush_hash_pages(ctx, start, pmd_val(*pmd), count);
arch/powerpc/mm/book3s32/tlb.c
73
++pmd;
arch/powerpc/mm/book3s64/hash_hugepage.c
36
pmd_t pmd = READ_ONCE(*pmdp);
arch/powerpc/mm/book3s64/hash_hugepage.c
38
old_pmd = pmd_val(pmd);
arch/powerpc/mm/book3s64/hash_pgtable.c
227
pmd_t pmd;
arch/powerpc/mm/book3s64/hash_pgtable.c
232
pmd = *pmdp;
arch/powerpc/mm/book3s64/hash_pgtable.c
235
page_table_check_pmd_clear(vma->vm_mm, address, pmd);
arch/powerpc/mm/book3s64/hash_pgtable.c
262
flush_hash_table_pmd_range(vma->vm_mm, &pmd, address);
arch/powerpc/mm/book3s64/hash_pgtable.c
263
return pmd;
arch/powerpc/mm/book3s64/hash_tlb.c
226
void flush_hash_table_pmd_range(struct mm_struct *mm, pmd_t *pmd, unsigned long addr)
arch/powerpc/mm/book3s64/hash_tlb.c
243
start_pte = pte_offset_map(pmd, addr);
arch/powerpc/mm/book3s64/pgtable.c
118
pmd_t *pmdp, pmd_t pmd)
arch/powerpc/mm/book3s64/pgtable.c
128
WARN_ON(!(pmd_leaf(pmd)));
arch/powerpc/mm/book3s64/pgtable.c
130
trace_hugepage_set_pmd(addr, pmd_val(pmd));
arch/powerpc/mm/book3s64/pgtable.c
131
page_table_check_pmd_set(mm, addr, pmdp, pmd);
arch/powerpc/mm/book3s64/pgtable.c
132
return set_pte_at_unchecked(mm, addr, pmdp_ptep(pmdp), pmd_pte(pmd));
arch/powerpc/mm/book3s64/pgtable.c
211
pmd_t pmd;
arch/powerpc/mm/book3s64/pgtable.c
215
pmd = pmdp_huge_get_and_clear(vma->vm_mm, addr, pmdp);
arch/powerpc/mm/book3s64/pgtable.c
223
return pmd;
arch/powerpc/mm/book3s64/pgtable.c
244
static pmd_t pmd_set_protbits(pmd_t pmd, pgprot_t pgprot)
arch/powerpc/mm/book3s64/pgtable.c
246
return __pmd(pmd_val(pmd) | pgprot_val(pgprot));
arch/powerpc/mm/book3s64/pgtable.c
277
pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
arch/powerpc/mm/book3s64/pgtable.c
281
pmdv = pmd_val(pmd);
arch/powerpc/mm/book3s64/pgtable.c
457
pmd_t *pmd;
arch/powerpc/mm/book3s64/pgtable.c
459
pmd = get_pmd_from_cache(mm);
arch/powerpc/mm/book3s64/pgtable.c
460
if (pmd)
arch/powerpc/mm/book3s64/pgtable.c
461
return pmd;
arch/powerpc/mm/book3s64/pgtable.c
466
void pmd_fragment_free(unsigned long *pmd)
arch/powerpc/mm/book3s64/pgtable.c
468
struct ptdesc *ptdesc = virt_to_ptdesc(pmd);
arch/powerpc/mm/book3s64/radix_pgtable.c
1083
pmd_t *pmd;
arch/powerpc/mm/book3s64/radix_pgtable.c
1088
pmd = early_alloc_pgtable(PAGE_SIZE, node, 0, 0);
arch/powerpc/mm/book3s64/radix_pgtable.c
1089
pud_populate(&init_mm, pudp, pmd);
arch/powerpc/mm/book3s64/radix_pgtable.c
1122
pmd_t *pmd;
arch/powerpc/mm/book3s64/radix_pgtable.c
1153
pmd = vmemmap_pmd_alloc(pud, node, addr);
arch/powerpc/mm/book3s64/radix_pgtable.c
1154
if (!pmd)
arch/powerpc/mm/book3s64/radix_pgtable.c
1157
if (pmd_none(READ_ONCE(*pmd))) {
arch/powerpc/mm/book3s64/radix_pgtable.c
1181
vmemmap_set_pmd(pmd, p, node, addr, next);
arch/powerpc/mm/book3s64/radix_pgtable.c
1193
} else if (vmemmap_check_pmd(pmd, node, addr, next)) {
arch/powerpc/mm/book3s64/radix_pgtable.c
1206
pte = vmemmap_pte_alloc(pmd, node, addr);
arch/powerpc/mm/book3s64/radix_pgtable.c
1210
pte = radix__vmemmap_pte_populate(pmd, addr, node, altmap, NULL);
arch/powerpc/mm/book3s64/radix_pgtable.c
1227
pmd_t *pmd;
arch/powerpc/mm/book3s64/radix_pgtable.c
1235
pmd = vmemmap_pmd_alloc(pud, node, addr);
arch/powerpc/mm/book3s64/radix_pgtable.c
1236
if (!pmd)
arch/powerpc/mm/book3s64/radix_pgtable.c
1238
if (pmd_leaf(*pmd))
arch/powerpc/mm/book3s64/radix_pgtable.c
1244
pte = vmemmap_pte_alloc(pmd, node, addr);
arch/powerpc/mm/book3s64/radix_pgtable.c
1247
radix__vmemmap_pte_populate(pmd, addr, node, NULL, NULL);
arch/powerpc/mm/book3s64/radix_pgtable.c
1259
pmd_t *pmd;
arch/powerpc/mm/book3s64/radix_pgtable.c
1270
pmd = vmemmap_pmd_alloc(pud, node, map_addr);
arch/powerpc/mm/book3s64/radix_pgtable.c
1271
if (!pmd)
arch/powerpc/mm/book3s64/radix_pgtable.c
1273
if (pmd_leaf(*pmd))
arch/powerpc/mm/book3s64/radix_pgtable.c
1279
pte = vmemmap_pte_alloc(pmd, node, map_addr);
arch/powerpc/mm/book3s64/radix_pgtable.c
1297
pte = radix__vmemmap_pte_populate(pmd, map_addr, node, NULL, NULL);
arch/powerpc/mm/book3s64/radix_pgtable.c
1322
pmd_t *pmd;
arch/powerpc/mm/book3s64/radix_pgtable.c
1332
pmd = vmemmap_pmd_alloc(pud, node, addr);
arch/powerpc/mm/book3s64/radix_pgtable.c
1333
if (!pmd)
arch/powerpc/mm/book3s64/radix_pgtable.c
1336
if (pmd_leaf(READ_ONCE(*pmd))) {
arch/powerpc/mm/book3s64/radix_pgtable.c
1342
pte = vmemmap_pte_alloc(pmd, node, addr);
arch/powerpc/mm/book3s64/radix_pgtable.c
1365
pte = radix__vmemmap_pte_populate(pmd, addr, node, NULL, NULL);
arch/powerpc/mm/book3s64/radix_pgtable.c
1390
pte = radix__vmemmap_pte_populate(pmd, addr, node, NULL, NULL);
arch/powerpc/mm/book3s64/radix_pgtable.c
1400
pte = radix__vmemmap_pte_populate(pmd, addr, node, NULL, pte_page(*tail_page_pte));
arch/powerpc/mm/book3s64/radix_pgtable.c
1468
pmd_t pmd;
arch/powerpc/mm/book3s64/radix_pgtable.c
1475
pmd = *pmdp;
arch/powerpc/mm/book3s64/radix_pgtable.c
1478
page_table_check_pmd_clear(vma->vm_mm, address, pmd);
arch/powerpc/mm/book3s64/radix_pgtable.c
1482
return pmd;
arch/powerpc/mm/book3s64/radix_pgtable.c
1640
pmd_t *pmd;
arch/powerpc/mm/book3s64/radix_pgtable.c
1643
pmd = pud_pgtable(*pud);
arch/powerpc/mm/book3s64/radix_pgtable.c
1649
if (!pmd_none(pmd[i])) {
arch/powerpc/mm/book3s64/radix_pgtable.c
1651
pte = (pte_t *)pmd_page_vaddr(pmd[i]);
arch/powerpc/mm/book3s64/radix_pgtable.c
1657
pmd_free(&init_mm, pmd);
arch/powerpc/mm/book3s64/radix_pgtable.c
1662
int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
arch/powerpc/mm/book3s64/radix_pgtable.c
1664
pte_t *ptep = (pte_t *)pmd;
arch/powerpc/mm/book3s64/radix_pgtable.c
1675
int pmd_clear_huge(pmd_t *pmd)
arch/powerpc/mm/book3s64/radix_pgtable.c
1677
if (pmd_leaf(*pmd)) {
arch/powerpc/mm/book3s64/radix_pgtable.c
1678
pmd_clear(pmd);
arch/powerpc/mm/book3s64/radix_pgtable.c
1685
int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
arch/powerpc/mm/book3s64/radix_pgtable.c
1689
pte = (pte_t *)pmd_page_vaddr(*pmd);
arch/powerpc/mm/book3s64/radix_pgtable.c
1690
pmd_clear(pmd);
arch/powerpc/mm/book3s64/radix_pgtable.c
693
static void free_pte_table(pte_t *pte_start, pmd_t *pmd)
arch/powerpc/mm/book3s64/radix_pgtable.c
705
pmd_clear(pmd);
arch/powerpc/mm/book3s64/radix_pgtable.c
710
pmd_t *pmd;
arch/powerpc/mm/book3s64/radix_pgtable.c
714
pmd = pmd_start + i;
arch/powerpc/mm/book3s64/radix_pgtable.c
715
if (!pmd_none(*pmd))
arch/powerpc/mm/book3s64/radix_pgtable.c
826
pmd_t *pmd;
arch/powerpc/mm/book3s64/radix_pgtable.c
828
pmd = pmd_start + pmd_index(addr);
arch/powerpc/mm/book3s64/radix_pgtable.c
829
for (; addr < end; addr = next, pmd++) {
arch/powerpc/mm/book3s64/radix_pgtable.c
832
if (!pmd_present(*pmd))
arch/powerpc/mm/book3s64/radix_pgtable.c
835
if (pmd_leaf(*pmd)) {
arch/powerpc/mm/book3s64/radix_pgtable.c
839
free_vmemmap_pages(pmd_page(*pmd), altmap, get_order(PMD_SIZE));
arch/powerpc/mm/book3s64/radix_pgtable.c
840
pte_clear(&init_mm, addr, (pte_t *)pmd);
arch/powerpc/mm/book3s64/radix_pgtable.c
845
free_vmemmap_pages(pmd_page(*pmd), altmap, get_order(PMD_SIZE));
arch/powerpc/mm/book3s64/radix_pgtable.c
846
pte_clear(&init_mm, addr, (pte_t *)pmd);
arch/powerpc/mm/book3s64/radix_pgtable.c
852
pte_base = (pte_t *)pmd_page_vaddr(*pmd);
arch/powerpc/mm/book3s64/radix_pgtable.c
854
free_pte_table(pte_base, pmd);
arch/powerpc/mm/book3s64/subpage_prot.c
138
static int subpage_walk_pmd_entry(pmd_t *pmd, unsigned long addr,
arch/powerpc/mm/book3s64/subpage_prot.c
142
split_huge_pmd(vma, pmd, addr);
arch/powerpc/mm/book3s64/subpage_prot.c
59
pmd_t *pmd;
arch/powerpc/mm/book3s64/subpage_prot.c
70
pmd = pmd_offset(pud, addr);
arch/powerpc/mm/book3s64/subpage_prot.c
71
if (pmd_none(*pmd))
arch/powerpc/mm/book3s64/subpage_prot.c
73
pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
arch/powerpc/mm/hugetlbpage.c
48
pmd_t *pmd;
arch/powerpc/mm/hugetlbpage.c
62
pmd = pmd_alloc(mm, pud, addr);
arch/powerpc/mm/hugetlbpage.c
63
if (!pmd)
arch/powerpc/mm/hugetlbpage.c
72
if (!pte_alloc_huge(mm, pmd + i, addr))
arch/powerpc/mm/hugetlbpage.c
76
return (pte_t *)pmd;
arch/powerpc/mm/hugetlbpage.c
79
return pte_alloc_huge(mm, pmd, addr);
arch/powerpc/mm/kasan/8xx.c
14
pmd_t *pmd = pmd_off_k(k_start);
arch/powerpc/mm/kasan/8xx.c
17
for (k_cur = k_start; k_cur != k_end; k_cur = k_next, pmd++, block += SZ_4M) {
arch/powerpc/mm/kasan/8xx.c
22
if ((void *)pmd_page_vaddr(*pmd) != kasan_early_shadow_pte)
arch/powerpc/mm/kasan/8xx.c
34
pmd_populate_kernel(&init_mm, pmd, ptep);
arch/powerpc/mm/kasan/8xx.c
35
*pmd = __pmd(pmd_val(*pmd) | _PMD_PAGE_8M);
arch/powerpc/mm/kasan/8xx.c
66
pmd_t *pmd = pmd_off_k(k_cur);
arch/powerpc/mm/kasan/8xx.c
73
__set_pte_at(&init_mm, k_cur, pte_offset_kernel(pmd, k_cur), pte, 0);
arch/powerpc/mm/kasan/book3s_32.c
51
pmd_t *pmd = pmd_off_k(k_cur);
arch/powerpc/mm/kasan/book3s_32.c
54
__set_pte_at(&init_mm, k_cur, pte_offset_kernel(pmd, k_cur), pte, 0);
arch/powerpc/mm/kasan/init_32.c
182
pmd_t *pmd = pmd_off_k(addr);
arch/powerpc/mm/kasan/init_32.c
190
pmd_populate_kernel(&init_mm, pmd, kasan_early_shadow_pte);
arch/powerpc/mm/kasan/init_32.c
191
} while (pmd++, addr = next, addr != end);
arch/powerpc/mm/kasan/init_32.c
33
pmd_t *pmd;
arch/powerpc/mm/kasan/init_32.c
36
pmd = pmd_off_k(k_start);
arch/powerpc/mm/kasan/init_32.c
38
for (k_cur = k_start; k_cur != k_end; k_cur = k_next, pmd++) {
arch/powerpc/mm/kasan/init_32.c
42
if ((void *)pmd_page_vaddr(*pmd) != kasan_early_shadow_pte)
arch/powerpc/mm/kasan/init_32.c
50
pmd_populate_kernel(&init_mm, pmd, new);
arch/powerpc/mm/kasan/init_32.c
73
pmd_t *pmd = pmd_off_k(k_cur);
arch/powerpc/mm/kasan/init_32.c
77
__set_pte_at(&init_mm, k_cur, pte_offset_kernel(pmd, k_cur), pte, 0);
arch/powerpc/mm/kasan/init_32.c
89
pmd_t *pmd = pmd_off_k(k_cur);
arch/powerpc/mm/kasan/init_32.c
90
pte_t *ptep = pte_offset_kernel(pmd, k_cur);
arch/powerpc/mm/kasan/init_book3e_64.c
27
static inline bool kasan_pte_table(pmd_t pmd)
arch/powerpc/mm/kasan/init_book3e_64.c
29
return pmd_page(pmd) == virt_to_page(lm_alias(kasan_early_shadow_pte));
arch/powerpc/mm/nohash/8xx.c
219
int pmd_clear_huge(pmd_t *pmd)
arch/powerpc/mm/pgtable.c
318
static void __set_huge_pte_at(pmd_t *pmd, pte_t *ptep, pte_basic_t val)
arch/powerpc/mm/pgtable.c
329
num = number_of_cells_per_pte(pmd, val, 1);
arch/powerpc/mm/pgtable.c
392
pmd_t *pmd;
arch/powerpc/mm/pgtable.c
404
pmd = pmd_offset(pud, addr);
arch/powerpc/mm/pgtable.c
411
if (pmd_none(*pmd))
arch/powerpc/mm/pgtable.c
413
pte = pte_offset_map_ro_nolock(mm, pmd, addr, &ptl);
arch/powerpc/mm/pgtable.c
448
pmd_t pmd, *pmdp;
arch/powerpc/mm/pgtable.c
504
pmd = READ_ONCE(*pmdp);
arch/powerpc/mm/pgtable.c
510
if (pmd_none(pmd))
arch/powerpc/mm/pgtable.c
520
if (pmd_is_serializing(pmd))
arch/powerpc/mm/pgtable.c
524
if (pmd_trans_huge(pmd)) {
arch/powerpc/mm/pgtable.c
531
if (pmd_leaf(pmd)) {
arch/powerpc/mm/pgtable.c
536
return pte_offset_kernel(&pmd, ea);
arch/powerpc/mm/pgtable_64.c
126
struct page *pmd_page(pmd_t pmd)
arch/powerpc/mm/pgtable_64.c
128
if (pmd_leaf(pmd)) {
arch/powerpc/mm/pgtable_64.c
135
VM_WARN_ON(!pmd_leaf(pmd));
arch/powerpc/mm/pgtable_64.c
136
return pte_page(pmd_pte(pmd));
arch/powerpc/mm/pgtable_64.c
138
return virt_to_page(pmd_page_vaddr(pmd));
arch/powerpc/mm/ptdump/hashpagetable.c
380
static void walk_pte(struct pg_state *st, pmd_t *pmd, unsigned long start)
arch/powerpc/mm/ptdump/hashpagetable.c
382
pte_t *pte = pte_offset_kernel(pmd, 0);
arch/powerpc/mm/ptdump/hashpagetable.c
416
pmd_t *pmd = pmd_offset(pud, 0);
arch/powerpc/mm/ptdump/hashpagetable.c
420
for (i = 0; i < PTRS_PER_PMD; i++, pmd++) {
arch/powerpc/mm/ptdump/hashpagetable.c
422
if (!pmd_none(*pmd))
arch/powerpc/mm/ptdump/hashpagetable.c
424
walk_pte(st, pmd, addr);
arch/powerpc/mm/ptdump/ptdump.c
307
static void note_page_pmd(struct ptdump_state *pt_st, unsigned long addr, pmd_t pmd)
arch/powerpc/mm/ptdump/ptdump.c
309
note_page(pt_st, addr, 3, pmd_val(pmd));
arch/riscv/include/asm/pgalloc.h
125
static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
arch/riscv/include/asm/pgalloc.h
128
tlb_remove_ptdesc(tlb, virt_to_ptdesc(pmd));
arch/riscv/include/asm/pgalloc.h
19
pmd_t *pmd, pte_t *pte)
arch/riscv/include/asm/pgalloc.h
23
set_pmd(pmd, __pmd((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE));
arch/riscv/include/asm/pgalloc.h
27
pmd_t *pmd, pgtable_t pte)
arch/riscv/include/asm/pgalloc.h
31
set_pmd(pmd, __pmd((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE));
arch/riscv/include/asm/pgalloc.h
35
static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
arch/riscv/include/asm/pgalloc.h
37
unsigned long pfn = virt_to_pfn(pmd);
arch/riscv/include/asm/pgtable-64.h
262
static inline unsigned long _pmd_pfn(pmd_t pmd)
arch/riscv/include/asm/pgtable-64.h
264
return __page_val_to_pfn(pmd_val(pmd));
arch/riscv/include/asm/pgtable-64.h
402
static inline pte_t pmd_pte(pmd_t pmd);
arch/riscv/include/asm/pgtable-64.h
64
unsigned long pmd;
arch/riscv/include/asm/pgtable-64.h
67
#define pmd_val(x) ((x).pmd)
arch/riscv/include/asm/pgtable.h
1004
static inline int pmd_trans_huge(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
1006
return pmd_leaf(pmd);
arch/riscv/include/asm/pgtable.h
1029
pmd_t pmd = __pmd(xchg(&pmdp->pmd, 0));
arch/riscv/include/asm/pgtable.h
1031
pmd_t pmd = *pmdp;
arch/riscv/include/asm/pgtable.h
1036
page_table_check_pmd_clear(mm, address, pmd);
arch/riscv/include/asm/pgtable.h
1038
return pmd;
arch/riscv/include/asm/pgtable.h
1050
unsigned long address, pmd_t *pmdp, pmd_t pmd)
arch/riscv/include/asm/pgtable.h
1052
page_table_check_pmd_set(vma->vm_mm, address, pmdp, pmd);
arch/riscv/include/asm/pgtable.h
1053
return __pmd(atomic_long_xchg((atomic_long_t *)pmdp, pmd_val(pmd)));
arch/riscv/include/asm/pgtable.h
1217
#define __pmd_to_swp_entry(pmd) ((swp_entry_t) { pmd_val(pmd) })
arch/riscv/include/asm/pgtable.h
212
static inline int pmd_present(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
220
return (pmd_val(pmd) & (_PAGE_PRESENT | _PAGE_PROT_NONE | _PAGE_LEAF));
arch/riscv/include/asm/pgtable.h
223
static inline int pmd_present(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
225
return (pmd_val(pmd) & (_PAGE_PRESENT | _PAGE_PROT_NONE));
arch/riscv/include/asm/pgtable.h
229
static inline int pmd_none(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
231
return (pmd_val(pmd) == 0);
arch/riscv/include/asm/pgtable.h
234
static inline int pmd_bad(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
236
return !pmd_present(pmd) || (pmd_val(pmd) & _PAGE_LEAF);
arch/riscv/include/asm/pgtable.h
240
static inline bool pmd_leaf(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
242
return pmd_present(pmd) && (pmd_val(pmd) & _PAGE_LEAF);
arch/riscv/include/asm/pgtable.h
245
static inline void set_pmd(pmd_t *pmdp, pmd_t pmd)
arch/riscv/include/asm/pgtable.h
247
WRITE_ONCE(*pmdp, pmd);
arch/riscv/include/asm/pgtable.h
269
static inline struct page *pmd_page(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
271
return pfn_to_page(__page_val_to_pfn(pmd_val(pmd)));
arch/riscv/include/asm/pgtable.h
274
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
276
return (unsigned long)pfn_to_virt(__page_val_to_pfn(pmd_val(pmd)));
arch/riscv/include/asm/pgtable.h
279
static inline pte_t pmd_pte(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
281
return __pte(pmd_val(pmd));
arch/riscv/include/asm/pgtable.h
551
static inline int pmd_protnone(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
553
return pte_protnone(pmd_pte(pmd));
arch/riscv/include/asm/pgtable.h
773
static inline pmd_t pmd_mkhuge(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
775
return pmd;
arch/riscv/include/asm/pgtable.h
778
static inline pmd_t pmd_mkinvalid(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
780
return __pmd(pmd_val(pmd) & ~(_PAGE_PRESENT|_PAGE_PROT_NONE));
arch/riscv/include/asm/pgtable.h
783
#define __pmd_to_phys(pmd) (__page_val_to_pfn(pmd_val(pmd)) << PAGE_SHIFT)
arch/riscv/include/asm/pgtable.h
785
static inline unsigned long pmd_pfn(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
787
return ((__pmd_to_phys(pmd) & PMD_MASK) >> PAGE_SHIFT);
arch/riscv/include/asm/pgtable.h
799
static inline pgprot_t pmd_pgprot(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
801
return pte_pgprot(pmd_pte(pmd));
arch/riscv/include/asm/pgtable.h
810
static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
arch/riscv/include/asm/pgtable.h
812
return pte_pmd(pte_modify(pmd_pte(pmd), newprot));
arch/riscv/include/asm/pgtable.h
816
static inline int pmd_write(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
818
return pte_write(pmd_pte(pmd));
arch/riscv/include/asm/pgtable.h
828
static inline int pmd_dirty(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
830
return pte_dirty(pmd_pte(pmd));
arch/riscv/include/asm/pgtable.h
834
static inline int pmd_young(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
836
return pte_young(pmd_pte(pmd));
arch/riscv/include/asm/pgtable.h
839
static inline int pmd_user(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
841
return pte_user(pmd_pte(pmd));
arch/riscv/include/asm/pgtable.h
844
static inline pmd_t pmd_mkold(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
846
return pte_pmd(pte_mkold(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
849
static inline pmd_t pmd_mkyoung(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
851
return pte_pmd(pte_mkyoung(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
854
pmd_t pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma);
arch/riscv/include/asm/pgtable.h
857
static inline pmd_t pmd_mkwrite_novma(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
859
return pte_pmd(pte_mkwrite_novma(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
867
static inline pmd_t pmd_wrprotect(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
869
return pte_pmd(pte_wrprotect(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
872
static inline pmd_t pmd_mkclean(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
874
return pte_pmd(pte_mkclean(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
877
static inline pmd_t pmd_mkdirty(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
879
return pte_pmd(pte_mkdirty(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
883
static inline bool pmd_special(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
885
return pte_special(pmd_pte(pmd));
arch/riscv/include/asm/pgtable.h
888
static inline pmd_t pmd_mkspecial(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
890
return pte_pmd(pte_mkspecial(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
907
static inline bool pmd_uffd_wp(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
909
return pte_uffd_wp(pmd_pte(pmd));
arch/riscv/include/asm/pgtable.h
912
static inline pmd_t pmd_mkuffd_wp(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
914
return pte_pmd(pte_mkuffd_wp(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
917
static inline pmd_t pmd_clear_uffd_wp(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
919
return pte_pmd(pte_clear_uffd_wp(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
922
static inline bool pmd_swp_uffd_wp(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
924
return pte_swp_uffd_wp(pmd_pte(pmd));
arch/riscv/include/asm/pgtable.h
927
static inline pmd_t pmd_swp_mkuffd_wp(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
929
return pte_pmd(pte_swp_mkuffd_wp(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
932
static inline pmd_t pmd_swp_clear_uffd_wp(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
934
return pte_pmd(pte_swp_clear_uffd_wp(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
939
static inline bool pmd_soft_dirty(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
941
return pte_soft_dirty(pmd_pte(pmd));
arch/riscv/include/asm/pgtable.h
944
static inline pmd_t pmd_mksoft_dirty(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
946
return pte_pmd(pte_mksoft_dirty(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
949
static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
951
return pte_pmd(pte_clear_soft_dirty(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
955
static inline bool pmd_swp_soft_dirty(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
957
return pte_swp_soft_dirty(pmd_pte(pmd));
arch/riscv/include/asm/pgtable.h
960
static inline pmd_t pmd_swp_mksoft_dirty(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
962
return pte_pmd(pte_swp_mksoft_dirty(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
965
static inline pmd_t pmd_swp_clear_soft_dirty(pmd_t pmd)
arch/riscv/include/asm/pgtable.h
967
return pte_pmd(pte_swp_clear_soft_dirty(pmd_pte(pmd)));
arch/riscv/include/asm/pgtable.h
973
pmd_t *pmdp, pmd_t pmd)
arch/riscv/include/asm/pgtable.h
975
page_table_check_pmd_set(mm, addr, pmdp, pmd);
arch/riscv/include/asm/pgtable.h
976
return __set_pte_at(mm, (pte_t *)pmdp, pmd_pte(pmd));
arch/riscv/include/asm/pgtable.h
992
static inline bool pmd_user_accessible_page(pmd_t pmd, unsigned long addr)
arch/riscv/include/asm/pgtable.h
994
return pmd_leaf(pmd) && pmd_user(pmd);
arch/riscv/kernel/hibernate.c
215
pmd_t pmd = READ_ONCE(*src_pmdp);
arch/riscv/kernel/hibernate.c
219
if (pmd_none(pmd))
arch/riscv/kernel/hibernate.c
222
if (pmd_leaf(pmd)) {
arch/riscv/kernel/hibernate.c
223
set_pmd(dst_pmdp, __pmd(pmd_val(pmd) | pgprot_val(prot)));
arch/riscv/kvm/mmu.c
374
pmd_t pmd;
arch/riscv/kvm/mmu.c
407
pmd = pmdp_get(pmd_offset(&pud, hva));
arch/riscv/kvm/mmu.c
408
if (pmd_none(pmd) || !pmd_present(pmd))
arch/riscv/kvm/mmu.c
411
if (pmd_leaf(pmd))
arch/riscv/mm/fault.c
33
pmd_t *pmdp, pmd;
arch/riscv/mm/fault.c
63
pmd = pmdp_get(pmdp);
arch/riscv/mm/fault.c
64
pr_cont(", pmd=%016lx", pmd_val(pmd));
arch/riscv/mm/fault.c
65
if (pmd_none(pmd) || pmd_bad(pmd) || pmd_leaf(pmd))
arch/riscv/mm/hugetlbpage.c
111
pmd = pmd_offset(pud, addr);
arch/riscv/mm/hugetlbpage.c
114
return (pte_t *)pmd;
arch/riscv/mm/hugetlbpage.c
116
if (!pmd_present(pmdp_get(pmd)))
arch/riscv/mm/hugetlbpage.c
121
pte = pte_offset_huge(pmd, addr & napot_cont_mask(order));
arch/riscv/mm/hugetlbpage.c
40
pmd_t *pmd;
arch/riscv/mm/hugetlbpage.c
64
pmd = pmd_alloc(mm, pud, addr);
arch/riscv/mm/hugetlbpage.c
65
if (!pmd)
arch/riscv/mm/hugetlbpage.c
70
pte = pte_alloc_huge(mm, pmd, addr & napot_cont_mask(order));
arch/riscv/mm/hugetlbpage.c
93
pmd_t *pmd;
arch/riscv/mm/init.c
1440
void __meminit vmemmap_set_pmd(pmd_t *pmd, void *p, int node,
arch/riscv/mm/init.c
1443
pmd_set_huge(pmd, virt_to_phys(p), PAGE_KERNEL);
arch/riscv/mm/init.c
1483
pmd_t *pmd;
arch/riscv/mm/init.c
1502
pmd = pmd_alloc(&init_mm, pud, addr);
arch/riscv/mm/init.c
1503
if (!pmd)
arch/riscv/mm/init.c
1567
static void __meminit free_pte_table(pte_t *pte_start, pmd_t *pmd)
arch/riscv/mm/init.c
1569
struct page *page = pmd_page(*pmd);
arch/riscv/mm/init.c
1585
pmd_clear(pmd);
arch/riscv/mm/init.c
1592
pmd_t *pmd;
arch/riscv/mm/init.c
1596
pmd = pmd_start + i;
arch/riscv/mm/init.c
1597
if (!pmd_none(*pmd))
arch/riscv/mm/init.c
1677
pmd_t *pmdp, pmd;
arch/riscv/mm/init.c
1682
pmd = pmdp_get(pmdp);
arch/riscv/mm/init.c
1683
if (!pmd_present(pmd))
arch/riscv/mm/init.c
1686
if (pmd_leaf(pmd)) {
arch/riscv/mm/init.c
1689
free_vmemmap_storage(pmd_page(pmd), PMD_SIZE, altmap);
arch/riscv/mm/kasan_init.c
29
static void __init kasan_populate_pte(pmd_t *pmd, unsigned long vaddr, unsigned long end)
arch/riscv/mm/kasan_init.c
34
if (pmd_none(pmdp_get(pmd))) {
arch/riscv/mm/kasan_init.c
36
set_pmd(pmd, pfn_pmd(PFN_DOWN(__pa(p)), PAGE_TABLE));
arch/riscv/mm/kasan_init.c
39
ptep = pte_offset_kernel(pmd, vaddr);
arch/riscv/mm/pageattr.c
441
pmd_t *pmd;
arch/riscv/mm/pageattr.c
462
pmd = pmd_offset(pud, addr);
arch/riscv/mm/pageattr.c
463
if (!pmd_present(pmdp_get(pmd)))
arch/riscv/mm/pageattr.c
465
if (pmd_leaf(pmdp_get(pmd)))
arch/riscv/mm/pageattr.c
468
pte = pte_offset_kernel(pmd, addr);
arch/riscv/mm/pageattr.c
55
static int pageattr_pmd_entry(pmd_t *pmd, unsigned long addr,
arch/riscv/mm/pageattr.c
58
pmd_t val = pmdp_get(pmd);
arch/riscv/mm/pageattr.c
62
set_pmd(pmd, val);
arch/riscv/mm/pgtable.c
105
pmd_free(NULL, pmd);
arch/riscv/mm/pgtable.c
110
int pmd_set_huge(pmd_t *pmd, phys_addr_t phys, pgprot_t prot)
arch/riscv/mm/pgtable.c
114
set_pmd(pmd, new_pmd);
arch/riscv/mm/pgtable.c
118
int pmd_clear_huge(pmd_t *pmd)
arch/riscv/mm/pgtable.c
120
if (!pmd_leaf(pmdp_get(pmd)))
arch/riscv/mm/pgtable.c
122
pmd_clear(pmd);
arch/riscv/mm/pgtable.c
126
int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
arch/riscv/mm/pgtable.c
128
pte_t *pte = (pte_t *)pmd_page_vaddr(pmdp_get(pmd));
arch/riscv/mm/pgtable.c
130
pmd_clear(pmd);
arch/riscv/mm/pgtable.c
142
pmd_t pmd = pmdp_huge_get_and_clear(vma->vm_mm, address, pmdp);
arch/riscv/mm/pgtable.c
155
return pmd;
arch/riscv/mm/pgtable.c
177
pmd_t pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma)
arch/riscv/mm/pgtable.c
180
return pmd_mkwrite_shstk(pmd);
arch/riscv/mm/pgtable.c
182
return pmd_mkwrite_novma(pmd);
arch/riscv/mm/pgtable.c
90
pmd_t *pmd = pud_pgtable(pudp_get(pud));
arch/riscv/mm/pgtable.c
98
if (!pmd_none(pmd[i])) {
arch/riscv/mm/pgtable.c
99
pte_t *pte = (pte_t *)pmd_page_vaddr(pmd[i]);
arch/riscv/mm/ptdump.c
325
static void note_page_pmd(struct ptdump_state *pt_st, unsigned long addr, pmd_t pmd)
arch/riscv/mm/ptdump.c
327
note_page(pt_st, addr, 3, pmd_val(pmd));
arch/s390/boot/vmem.c
170
static bool kasan_pmd_populate_zero_shadow(pmd_t *pmd, unsigned long addr,
arch/s390/boot/vmem.c
175
pmd_populate(&init_mm, pmd, kasan_early_shadow_pte);
arch/s390/boot/vmem.c
213
static inline bool kasan_pmd_populate_zero_shadow(pmd_t *pmd, unsigned long addr,
arch/s390/boot/vmem.c
333
static void pgtable_pte_populate(pmd_t *pmd, unsigned long addr, unsigned long end,
arch/s390/boot/vmem.c
339
pte = pte_offset_kernel(pmd, addr);
arch/s390/boot/vmem.c
358
pmd_t *pmd, entry;
arch/s390/boot/vmem.c
361
pmd = pmd_offset(pud, addr);
arch/s390/boot/vmem.c
362
for (; addr < end; addr = next, pmd++) {
arch/s390/boot/vmem.c
364
if (pmd_none(*pmd)) {
arch/s390/boot/vmem.c
365
if (kasan_pmd_populate_zero_shadow(pmd, addr, next, mode))
arch/s390/boot/vmem.c
367
pa = try_get_large_pmd_pa(pmd, addr, next, mode);
arch/s390/boot/vmem.c
371
set_pmd(pmd, entry);
arch/s390/boot/vmem.c
376
pmd_populate(&init_mm, pmd, pte);
arch/s390/boot/vmem.c
377
} else if (pmd_leaf(*pmd)) {
arch/s390/boot/vmem.c
380
pgtable_pte_populate(pmd, addr, next, mode);
arch/s390/boot/vmem.c
391
pmd_t *pmd;
arch/s390/boot/vmem.c
407
pmd = boot_crst_alloc(_SEGMENT_ENTRY_EMPTY);
arch/s390/boot/vmem.c
408
pud_populate(&init_mm, pud, pmd);
arch/s390/include/asm/page.h
111
DEFINE_PGVAL_FUNC(pmd)
arch/s390/include/asm/page.h
81
typedef struct { unsigned long pmd; } pmd_t;
arch/s390/include/asm/pgalloc.h
110
static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
arch/s390/include/asm/pgalloc.h
114
pagetable_dtor(virt_to_ptdesc(pmd));
arch/s390/include/asm/pgalloc.h
115
crst_table_free(mm, (unsigned long *) pmd);
arch/s390/include/asm/pgalloc.h
128
static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
arch/s390/include/asm/pgalloc.h
130
set_pud(pud, __pud(_REGION3_ENTRY | __pa(pmd)));
arch/s390/include/asm/pgalloc.h
152
pmd_t *pmd, pgtable_t pte)
arch/s390/include/asm/pgalloc.h
154
set_pmd(pmd, __pmd(_SEGMENT_ENTRY | __pa(pte)));
arch/s390/include/asm/pgalloc.h
157
#define pmd_populate_kernel(mm, pmd, pte) pmd_populate(mm, pmd, pte)
arch/s390/include/asm/pgtable.h
1360
static inline unsigned long pmd_deref(pmd_t pmd)
arch/s390/include/asm/pgtable.h
1365
if (pmd_leaf(pmd))
arch/s390/include/asm/pgtable.h
1367
return (unsigned long)__va(pmd_val(pmd) & origin_mask);
arch/s390/include/asm/pgtable.h
1370
static inline unsigned long pmd_pfn(pmd_t pmd)
arch/s390/include/asm/pgtable.h
1372
return __pa(pmd_deref(pmd)) >> PAGE_SHIFT;
arch/s390/include/asm/pgtable.h
1457
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
arch/s390/include/asm/pgtable.h
1459
return (unsigned long) pmd_deref(pmd);
arch/s390/include/asm/pgtable.h
1472
#define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd))
arch/s390/include/asm/pgtable.h
1477
static inline pmd_t pmd_wrprotect(pmd_t pmd)
arch/s390/include/asm/pgtable.h
1479
pmd = clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_WRITE));
arch/s390/include/asm/pgtable.h
1480
return set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_PROTECT));
arch/s390/include/asm/pgtable.h
1483
static inline pmd_t pmd_mkwrite_novma(pmd_t pmd)
arch/s390/include/asm/pgtable.h
1485
pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_WRITE));
arch/s390/include/asm/pgtable.h
1486
if (pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY)
arch/s390/include/asm/pgtable.h
1487
pmd = clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_PROTECT));
arch/s390/include/asm/pgtable.h
1488
return pmd;
arch/s390/include/asm/pgtable.h
1491
static inline pmd_t pmd_mkclean(pmd_t pmd)
arch/s390/include/asm/pgtable.h
1493
pmd = clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_DIRTY));
arch/s390/include/asm/pgtable.h
1494
return set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_PROTECT));
arch/s390/include/asm/pgtable.h
1497
static inline pmd_t pmd_mkdirty(pmd_t pmd)
arch/s390/include/asm/pgtable.h
1499
pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_DIRTY | _SEGMENT_ENTRY_SOFT_DIRTY));
arch/s390/include/asm/pgtable.h
1500
if (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE)
arch/s390/include/asm/pgtable.h
1501
pmd = clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_PROTECT));
arch/s390/include/asm/pgtable.h
1502
return pmd;
arch/s390/include/asm/pgtable.h
1551
static inline pmd_t pmd_mkyoung(pmd_t pmd)
arch/s390/include/asm/pgtable.h
1553
pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_YOUNG));
arch/s390/include/asm/pgtable.h
1554
if (pmd_val(pmd) & _SEGMENT_ENTRY_READ)
arch/s390/include/asm/pgtable.h
1555
pmd = clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_INVALID));
arch/s390/include/asm/pgtable.h
1556
return pmd;
arch/s390/include/asm/pgtable.h
1559
static inline pmd_t pmd_mkold(pmd_t pmd)
arch/s390/include/asm/pgtable.h
1561
pmd = clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_YOUNG));
arch/s390/include/asm/pgtable.h
1562
return set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_INVALID));
arch/s390/include/asm/pgtable.h
1565
static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
arch/s390/include/asm/pgtable.h
1574
pmd = __pmd(pmd_val(pmd) & mask);
arch/s390/include/asm/pgtable.h
1575
pmd = set_pmd_bit(pmd, __pgprot(massage_pgprot_pmd(newprot)));
arch/s390/include/asm/pgtable.h
1576
if (!(pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY))
arch/s390/include/asm/pgtable.h
1577
pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_PROTECT));
arch/s390/include/asm/pgtable.h
1578
if (!(pmd_val(pmd) & _SEGMENT_ENTRY_YOUNG))
arch/s390/include/asm/pgtable.h
1579
pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_INVALID));
arch/s390/include/asm/pgtable.h
1580
return pmd;
arch/s390/include/asm/pgtable.h
1689
pmd_t pmd = *pmdp;
arch/s390/include/asm/pgtable.h
1691
pmd = pmdp_xchg_direct(vma->vm_mm, addr, pmdp, pmd_mkold(pmd));
arch/s390/include/asm/pgtable.h
1692
return pmd_young(pmd);
arch/s390/include/asm/pgtable.h
1709
static inline pmd_t pmd_mkhuge(pmd_t pmd)
arch/s390/include/asm/pgtable.h
1711
pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_LARGE));
arch/s390/include/asm/pgtable.h
1712
pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_YOUNG));
arch/s390/include/asm/pgtable.h
1713
return set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_PROTECT));
arch/s390/include/asm/pgtable.h
1729
pmd_t pmd = *pmdp;
arch/s390/include/asm/pgtable.h
1731
return pmd;
arch/s390/include/asm/pgtable.h
1747
pmd_t pmd;
arch/s390/include/asm/pgtable.h
1750
pmd = __pmd(pmd_val(*pmdp) | _SEGMENT_ENTRY_INVALID);
arch/s390/include/asm/pgtable.h
1751
return pmdp_xchg_direct(vma->vm_mm, addr, pmdp, pmd);
arch/s390/include/asm/pgtable.h
1758
pmd_t pmd = *pmdp;
arch/s390/include/asm/pgtable.h
1760
if (pmd_write(pmd))
arch/s390/include/asm/pgtable.h
1761
pmd = pmdp_xchg_lazy(mm, addr, pmdp, pmd_wrprotect(pmd));
arch/s390/include/asm/pgtable.h
1774
static inline int pmd_trans_huge(pmd_t pmd)
arch/s390/include/asm/pgtable.h
1776
return pmd_leaf(pmd);
arch/s390/include/asm/pgtable.h
1904
static inline swp_entry_t __pmd_to_swp_entry(pmd_t pmd)
arch/s390/include/asm/pgtable.h
1909
arch_entry = __rste_to_swp_entry(pmd_val(pmd));
arch/s390/include/asm/pgtable.h
1916
pmd_t pmd;
arch/s390/include/asm/pgtable.h
1918
pmd = __pmd(mk_swap_rste(__swp_type(arch_entry), __swp_offset(arch_entry)));
arch/s390/include/asm/pgtable.h
1919
return pmd;
arch/s390/include/asm/pgtable.h
1933
#define pmd_pgtable(pmd) \
arch/s390/include/asm/pgtable.h
1934
((pgtable_t)__va(pmd_val(pmd) & -sizeof(pte_t)*PTRS_PER_PTE))
arch/s390/include/asm/pgtable.h
566
static inline pmd_t clear_pmd_bit(pmd_t pmd, pgprot_t prot)
arch/s390/include/asm/pgtable.h
568
return __pmd(pmd_val(pmd) & ~pgprot_val(prot));
arch/s390/include/asm/pgtable.h
571
static inline pmd_t set_pmd_bit(pmd_t pmd, pgprot_t prot)
arch/s390/include/asm/pgtable.h
573
return __pmd(pmd_val(pmd) | pgprot_val(prot));
arch/s390/include/asm/pgtable.h
744
static inline int pmd_present(pmd_t pmd)
arch/s390/include/asm/pgtable.h
746
return (pmd_val(pmd) & _SEGMENT_ENTRY_PRESENT) != 0;
arch/s390/include/asm/pgtable.h
750
static inline bool pmd_leaf(pmd_t pmd)
arch/s390/include/asm/pgtable.h
752
return (pmd_present(pmd) && (pmd_val(pmd) & _SEGMENT_ENTRY_LARGE) != 0);
arch/s390/include/asm/pgtable.h
755
static inline int pmd_bad(pmd_t pmd)
arch/s390/include/asm/pgtable.h
757
if ((pmd_val(pmd) & _SEGMENT_ENTRY_TYPE_MASK) > 0 || pmd_leaf(pmd))
arch/s390/include/asm/pgtable.h
759
return (pmd_val(pmd) & ~_SEGMENT_ENTRY_BITS) != 0;
arch/s390/include/asm/pgtable.h
784
static inline int pmd_none(pmd_t pmd)
arch/s390/include/asm/pgtable.h
786
return pmd_val(pmd) == _SEGMENT_ENTRY_EMPTY;
arch/s390/include/asm/pgtable.h
790
static inline int pmd_write(pmd_t pmd)
arch/s390/include/asm/pgtable.h
792
return (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE) != 0;
arch/s390/include/asm/pgtable.h
802
static inline int pmd_dirty(pmd_t pmd)
arch/s390/include/asm/pgtable.h
804
return (pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY) != 0;
arch/s390/include/asm/pgtable.h
808
static inline int pmd_young(pmd_t pmd)
arch/s390/include/asm/pgtable.h
810
return (pmd_val(pmd) & _SEGMENT_ENTRY_YOUNG) != 0;
arch/s390/include/asm/pgtable.h
849
static inline int pmd_protnone(pmd_t pmd)
arch/s390/include/asm/pgtable.h
852
return pmd_leaf(pmd) && !(pmd_val(pmd) & _SEGMENT_ENTRY_READ);
arch/s390/include/asm/pgtable.h
889
static inline int pmd_soft_dirty(pmd_t pmd)
arch/s390/include/asm/pgtable.h
891
return pmd_val(pmd) & _SEGMENT_ENTRY_SOFT_DIRTY;
arch/s390/include/asm/pgtable.h
894
static inline pmd_t pmd_mksoft_dirty(pmd_t pmd)
arch/s390/include/asm/pgtable.h
896
return set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_SOFT_DIRTY));
arch/s390/include/asm/pgtable.h
899
static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd)
arch/s390/include/asm/pgtable.h
901
return clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_SOFT_DIRTY));
arch/s390/include/asm/pgtable.h
905
#define pmd_swp_soft_dirty(pmd) pmd_soft_dirty(pmd)
arch/s390/include/asm/pgtable.h
906
#define pmd_swp_mksoft_dirty(pmd) pmd_mksoft_dirty(pmd)
arch/s390/include/asm/pgtable.h
907
#define pmd_swp_clear_soft_dirty(pmd) pmd_clear_soft_dirty(pmd)
arch/s390/include/asm/pgtable.h
974
static inline void set_pmd(pmd_t *pmdp, pmd_t pmd)
arch/s390/include/asm/pgtable.h
976
WRITE_ONCE(*pmdp, pmd);
arch/s390/include/asm/tlb.h
104
tlb_remove_ptdesc(tlb, virt_to_ptdesc(pmd));
arch/s390/include/asm/tlb.h
95
static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
arch/s390/kvm/dat.c
100
dat_free_pt(dereference_pmd(table->crstes[i].pmd));
arch/s390/kvm/dat.c
233
static int dat_split_ste(struct kvm_s390_mmu_cache *mc, union pmd *pmdp, gfn_t gfn,
arch/s390/kvm/dat.c
238
union pmd new, old;
arch/s390/kvm/dat.c
310
return dat_split_ste(mc, &crstep->pmd, gfn, asce, uses_skeys);
arch/s390/kvm/dat.c
483
if (continue_anyway && !entry.pmd.h.fc && !entry.h.i) {
arch/s390/kvm/dat.c
487
if (walk_level == TABLE_TYPE_SEGMENT || ((leaf || any) && entry.pmd.h.fc))
arch/s390/kvm/dat.c
490
if (entry.pmd.h.i && !entry.pmd.h.fc) {
arch/s390/kvm/dat.c
493
rc = dat_split_ste(mc, &(*last)->pmd, gfn, asce, uses_skeys);
arch/s390/kvm/dat.c
498
if (walk_level <= TABLE_TYPE_PAGE_TABLE && entry.pmd.h.fc) {
arch/s390/kvm/dat.c
501
rc = dat_split_ste(mc, &(*last)->pmd, gfn, asce, uses_skeys);
arch/s390/kvm/dat.c
506
pgtable = dereference_pmd(entry.pmd);
arch/s390/kvm/dat.c
571
dereference_pmd(crste.pmd), walk);
arch/s390/kvm/dat.c
876
dat_free_pt(dereference_pmd(crste.pmd));
arch/s390/kvm/dat.h
286
union pmd pmd;
arch/s390/kvm/dat.h
305
static_assert(sizeof(union pmd) == sizeof(unsigned long));
arch/s390/kvm/dat.h
313
union pmd pmds[_CRST_ENTRIES];
arch/s390/kvm/dat.h
647
union pmd : (x).val, \
arch/s390/kvm/dat.h
654
union pmd : (x), \
arch/s390/kvm/dat.h
689
static inline phys_addr_t pmd_origin_large(union pmd pmd)
arch/s390/kvm/dat.h
691
return pmd.val & _SEGMENT_ENTRY_ORIGIN_LARGE;
arch/s390/kvm/dat.h
713
return pmd_origin_large(crste.pmd);
arch/s390/kvm/dat.h
718
union pmd : (x).val & _SEGMENT_ENTRY_ORIGIN, \
arch/s390/kvm/dat.h
728
static inline bool pmd_prefix(union pmd pmd)
arch/s390/kvm/dat.h
730
return pmd.h.fc && pmd.s.fc1.prefix_notif;
arch/s390/kvm/dat.h
782
static inline phys_addr_t large_pmd_to_phys(union pmd pmd, gfn_t gfn)
arch/s390/kvm/dat.h
784
return pmd_origin_large(pmd) | (gfn_to_gpa(gfn) & ~_SEGMENT_MASK);
arch/s390/kvm/dat.h
792
return large_pmd_to_phys(crste.pmd, gfn);
arch/s390/kvm/dat.h
801
static inline struct page_table *dereference_pmd(union pmd pmd)
arch/s390/kvm/dat.h
803
return phys_to_virt(crste_origin(pmd));
arch/s390/kvm/dat.h
927
static inline bool dat_pmdp_xchg_atomic(union pmd *pmdp, union pmd old, union pmd new,
arch/s390/kvm/gaccess.c
1391
if (table.pmd.i)
arch/s390/kvm/gaccess.c
1393
if (table.pmd.tt != TABLE_TYPE_SEGMENT)
arch/s390/kvm/gaccess.c
1395
if (table.pmd.cs && asce.p)
arch/s390/kvm/gaccess.c
1397
w->p |= table.pmd.p;
arch/s390/kvm/gaccess.c
1398
if (table.pmd.fc && sg->edat_level >= 1) {
arch/s390/kvm/gaccess.c
1402
ptr = table.pmd.fc0.pto * (PAGE_SIZE / 2);
arch/s390/kvm/gaccess.c
33
union segment_table_entry pmd;
arch/s390/kvm/gmap.c
1084
dat_free_pt(dereference_pmd(crste.pmd));
arch/s390/mm/dump_pagetables.c
155
static void note_page_pmd(struct ptdump_state *pt_st, unsigned long addr, pmd_t pmd)
arch/s390/mm/dump_pagetables.c
157
note_page(pt_st, addr, 3, pmd_val(pmd));
arch/s390/mm/gmap_helpers.c
116
pmd_t *pmdp, pmd, pmdval;
arch/s390/mm/gmap_helpers.c
139
pmd = pmdp_get_lockless(pmdp);
arch/s390/mm/gmap_helpers.c
140
if (pmd_none(pmd) || pmd_leaf(pmd) || !pmd_present(pmd))
arch/s390/mm/vmem.c
168
static int __ref modify_pte_table(pmd_t *pmd, unsigned long addr,
arch/s390/mm/vmem.c
177
pte = pte_offset_kernel(pmd, addr);
arch/s390/mm/vmem.c
207
static void try_free_pte_table(pmd_t *pmd, unsigned long start)
arch/s390/mm/vmem.c
213
pte = pte_offset_kernel(pmd, start);
arch/s390/mm/vmem.c
218
vmem_pte_free((unsigned long *) pmd_deref(*pmd));
arch/s390/mm/vmem.c
219
pmd_clear(pmd);
arch/s390/mm/vmem.c
229
pmd_t *pmd;
arch/s390/mm/vmem.c
233
pmd = pmd_offset(pud, addr);
arch/s390/mm/vmem.c
234
for (; addr < end; addr = next, pmd++) {
arch/s390/mm/vmem.c
237
if (pmd_none(*pmd))
arch/s390/mm/vmem.c
239
if (pmd_leaf(*pmd)) {
arch/s390/mm/vmem.c
243
vmem_free_pages(pmd_deref(*pmd), get_order(PMD_SIZE), altmap);
arch/s390/mm/vmem.c
244
pmd_clear(pmd);
arch/s390/mm/vmem.c
247
vmem_free_pages(pmd_deref(*pmd), get_order(PMD_SIZE), altmap);
arch/s390/mm/vmem.c
248
pmd_clear(pmd);
arch/s390/mm/vmem.c
252
} else if (pmd_none(*pmd)) {
arch/s390/mm/vmem.c
257
set_pmd(pmd, __pmd(__pa(addr) | prot));
arch/s390/mm/vmem.c
272
set_pmd(pmd, __pmd(__pa(new_page) | prot));
arch/s390/mm/vmem.c
283
pmd_populate(&init_mm, pmd, pte);
arch/s390/mm/vmem.c
284
} else if (pmd_leaf(*pmd)) {
arch/s390/mm/vmem.c
289
ret = modify_pte_table(pmd, addr, next, add, direct, altmap);
arch/s390/mm/vmem.c
293
try_free_pte_table(pmd, addr & PMD_MASK);
arch/s390/mm/vmem.c
304
pmd_t *pmd;
arch/s390/mm/vmem.c
307
pmd = pmd_offset(pud, start);
arch/s390/mm/vmem.c
308
for (i = 0; i < PTRS_PER_PMD; i++, pmd++)
arch/s390/mm/vmem.c
309
if (!pmd_none(*pmd))
arch/s390/mm/vmem.c
321
pmd_t *pmd;
arch/s390/mm/vmem.c
351
pmd = vmem_crst_alloc(_SEGMENT_ENTRY_EMPTY);
arch/s390/mm/vmem.c
352
if (!pmd)
arch/s390/mm/vmem.c
354
pud_populate(&init_mm, pud, pmd);
arch/s390/mm/vmem.c
581
pmd_t *pmd;
arch/s390/mm/vmem.c
606
pmd = vmem_crst_alloc(_SEGMENT_ENTRY_EMPTY);
arch/s390/mm/vmem.c
607
if (!pmd)
arch/s390/mm/vmem.c
609
pud_populate(&init_mm, pud, pmd);
arch/s390/mm/vmem.c
613
pmd = pmd_offset(pud, addr);
arch/s390/mm/vmem.c
614
if (pmd_none(*pmd)) {
arch/s390/mm/vmem.c
620
pmd_populate(&init_mm, pmd, pte);
arch/s390/mm/vmem.c
621
} else if (WARN_ON_ONCE(pmd_leaf(*pmd))) {
arch/s390/mm/vmem.c
624
ptep = pte_offset_kernel(pmd, addr);
arch/sh/include/asm/pgalloc.h
17
extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd);
arch/sh/include/asm/pgalloc.h
19
extern void pmd_free(struct mm_struct *mm, pmd_t *pmd);
arch/sh/include/asm/pgalloc.h
23
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
arch/sh/include/asm/pgalloc.h
26
set_pmd(pmd, __pmd((unsigned long)pte));
arch/sh/include/asm/pgalloc.h
29
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
arch/sh/include/asm/pgalloc.h
32
set_pmd(pmd, __pmd((unsigned long)page_address(pte)));
arch/sh/include/asm/pgtable-3level.h
36
unsigned long long pmd;
arch/sh/include/asm/pgtable-3level.h
38
#define pmd_val(x) ((x).pmd)
arch/sh/include/asm/pgtable-3level.h
39
#define __pmd(x) ((pmd_t) { .pmd = (x) } )
arch/sh/include/asm/pgtable_32.h
395
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
arch/sh/include/asm/pgtable_32.h
397
return (unsigned long)pmd_val(pmd);
arch/sh/include/asm/pgtable_32.h
400
#define pmd_pfn(pmd) (__pa(pmd_val(pmd)) >> PAGE_SHIFT)
arch/sh/include/asm/pgtable_32.h
401
#define pmd_page(pmd) (virt_to_page(pmd_val(pmd)))
arch/sh/mm/cache-sh4.c
221
pmd_t *pmd;
arch/sh/mm/cache-sh4.c
234
pmd = pmd_off(vma->vm_mm, address);
arch/sh/mm/cache-sh4.c
235
pte = pte_offset_kernel(pmd, address);
arch/sh/mm/fault.c
100
if (pmd_none(*pmd))
arch/sh/mm/fault.c
103
if (pmd_bad(*pmd)) {
arch/sh/mm/fault.c
109
if (PageHighMem(pfn_to_page(pmd_val(*pmd) >> PAGE_SHIFT)))
arch/sh/mm/fault.c
112
pte = pte_offset_kernel(pmd, addr);
arch/sh/mm/fault.c
126
pmd_t *pmd, *pmd_k;
arch/sh/mm/fault.c
147
pmd = pmd_offset(pud, address);
arch/sh/mm/fault.c
152
if (!pmd_present(*pmd))
arch/sh/mm/fault.c
153
set_pmd(pmd, *pmd_k);
arch/sh/mm/fault.c
160
BUG_ON(pmd_page(*pmd) != pmd_page(*pmd_k));
arch/sh/mm/fault.c
58
pmd_t *pmd;
arch/sh/mm/fault.c
95
pmd = pmd_offset(pud, addr);
arch/sh/mm/fault.c
97
pr_cont(", *pmd=%0*llx", (u32)(sizeof(*pmd) * 2),
arch/sh/mm/fault.c
98
(u64)pmd_val(*pmd));
arch/sh/mm/hugetlbpage.c
30
pmd_t *pmd;
arch/sh/mm/hugetlbpage.c
39
pmd = pmd_alloc(mm, pud, addr);
arch/sh/mm/hugetlbpage.c
40
if (pmd)
arch/sh/mm/hugetlbpage.c
41
pte = pte_alloc_huge(mm, pmd, addr);
arch/sh/mm/hugetlbpage.c
55
pmd_t *pmd;
arch/sh/mm/hugetlbpage.c
64
pmd = pmd_offset(pud, addr);
arch/sh/mm/hugetlbpage.c
65
if (pmd)
arch/sh/mm/hugetlbpage.c
66
pte = pte_offset_huge(pmd, addr);
arch/sh/mm/init.c
138
pmd_t *pmd;
arch/sh/mm/init.c
140
pmd = memblock_alloc_or_panic(PAGE_SIZE, PAGE_SIZE);
arch/sh/mm/init.c
141
pud_populate(&init_mm, pud, pmd);
arch/sh/mm/init.c
142
BUG_ON(pmd != pmd_offset(pud, 0));
arch/sh/mm/init.c
148
static pte_t * __init one_page_table_init(pmd_t *pmd)
arch/sh/mm/init.c
150
if (pmd_none(*pmd)) {
arch/sh/mm/init.c
154
pmd_populate_kernel(&init_mm, pmd, pte);
arch/sh/mm/init.c
155
BUG_ON(pte != pte_offset_kernel(pmd, 0));
arch/sh/mm/init.c
158
return pte_offset_kernel(pmd, 0);
arch/sh/mm/init.c
161
static pte_t * __init page_table_kmap_check(pte_t *pte, pmd_t *pmd,
arch/sh/mm/init.c
172
pmd_t *pmd;
arch/sh/mm/init.c
186
pmd = one_md_table_init(pud);
arch/sh/mm/init.c
188
pmd += k;
arch/sh/mm/init.c
190
for (; (k < PTRS_PER_PMD) && (vaddr != end); pmd++, k++) {
arch/sh/mm/init.c
191
pte = page_table_kmap_check(one_page_table_init(pmd),
arch/sh/mm/init.c
192
pmd, vaddr, pte);
arch/sh/mm/init.c
52
pmd_t *pmd;
arch/sh/mm/init.c
72
pmd = pmd_alloc(NULL, pud, addr);
arch/sh/mm/init.c
73
if (unlikely(!pmd)) {
arch/sh/mm/init.c
74
pmd_ERROR(*pmd);
arch/sh/mm/init.c
78
return pte_offset_kernel(pmd, addr);
arch/sh/mm/pgtable.c
45
void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
arch/sh/mm/pgtable.c
47
set_pud(pud, __pud((unsigned long)pmd));
arch/sh/mm/pgtable.c
55
void pmd_free(struct mm_struct *mm, pmd_t *pmd)
arch/sh/mm/pgtable.c
57
kmem_cache_free(pmd_cachep, pmd);
arch/sh/mm/tlbex_32.c
29
pmd_t *pmd;
arch/sh/mm/tlbex_32.c
53
pmd = pmd_offset(pud, address);
arch/sh/mm/tlbex_32.c
54
if (pmd_none_or_clear_bad(pmd))
arch/sh/mm/tlbex_32.c
56
pte = pte_offset_kernel(pmd, address);
arch/sparc/include/asm/page_32.h
55
typedef struct { unsigned long pmd; } pmd_t;
arch/sparc/include/asm/page_32.h
63
#define pmd_val(x) ((x).pmd)
arch/sparc/include/asm/page_64.h
69
typedef struct { unsigned long pmd; } pmd_t;
arch/sparc/include/asm/page_64.h
76
#define pmd_val(x) ((x).pmd)
arch/sparc/include/asm/pgalloc_32.h
45
static inline void free_pmd_fast(pmd_t * pmd)
arch/sparc/include/asm/pgalloc_32.h
47
srmmu_free_nocache(pmd, SRMMU_PMD_TABLE_SIZE);
arch/sparc/include/asm/pgalloc_32.h
50
#define pmd_free(mm, pmd) free_pmd_fast(pmd)
arch/sparc/include/asm/pgalloc_32.h
51
#define __pmd_free_tlb(tlb, pmd, addr) pmd_free((tlb)->mm, pmd)
arch/sparc/include/asm/pgalloc_32.h
53
#define pmd_populate(mm, pmd, pte) pmd_set(pmd, pte)
arch/sparc/include/asm/pgalloc_64.h
112
#define __pmd_free_tlb(tlb, pmd, addr) \
arch/sparc/include/asm/pgalloc_64.h
113
pgtable_free_tlb(tlb, pmd, false)
arch/sparc/include/asm/pgalloc_64.h
36
static inline void __pud_populate(pud_t *pud, pmd_t *pmd)
arch/sparc/include/asm/pgalloc_64.h
38
pud_set(pud, pmd);
arch/sparc/include/asm/pgalloc_64.h
58
static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
arch/sparc/include/asm/pgalloc_64.h
60
kmem_cache_free(pgtable_cache, pmd);
arch/sparc/include/asm/pgtable_32.h
109
static inline unsigned long pmd_pfn(pmd_t pmd)
arch/sparc/include/asm/pgtable_32.h
111
return (pmd_val(pmd) & SRMMU_PTD_PMASK) >> (PAGE_SHIFT-4);
arch/sparc/include/asm/pgtable_32.h
114
static inline struct page *pmd_page(pmd_t pmd)
arch/sparc/include/asm/pgtable_32.h
116
if (srmmu_device_memory(pmd_val(pmd)))
arch/sparc/include/asm/pgtable_32.h
118
return pfn_to_page(pmd_pfn(pmd));
arch/sparc/include/asm/pgtable_32.h
121
static inline unsigned long __pmd_page(pmd_t pmd)
arch/sparc/include/asm/pgtable_32.h
125
if (srmmu_device_memory(pmd_val(pmd)))
arch/sparc/include/asm/pgtable_32.h
128
v = pmd_val(pmd) & SRMMU_PTD_PMASK;
arch/sparc/include/asm/pgtable_32.h
132
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
arch/sparc/include/asm/pgtable_32.h
134
unsigned long v = pmd_val(pmd) & SRMMU_PTD_PMASK;
arch/sparc/include/asm/pgtable_32.h
168
static inline int pmd_bad(pmd_t pmd)
arch/sparc/include/asm/pgtable_32.h
170
return (pmd_val(pmd) & SRMMU_ET_MASK) != SRMMU_ET_PTD;
arch/sparc/include/asm/pgtable_32.h
173
static inline int pmd_present(pmd_t pmd)
arch/sparc/include/asm/pgtable_32.h
175
return ((pmd_val(pmd) & SRMMU_ET_MASK) == SRMMU_ET_PTD);
arch/sparc/include/asm/pgtable_32.h
178
static inline int pmd_none(pmd_t pmd)
arch/sparc/include/asm/pgtable_32.h
180
return !pmd_val(pmd);
arch/sparc/include/asm/pgtable_32.h
432
#define pmd_pgtable(pmd) ((pgtable_t)__pmd_page(pmd))
arch/sparc/include/asm/pgtable_64.h
1169
extern unsigned long pmd_leaf_size(pmd_t pmd);
arch/sparc/include/asm/pgtable_64.h
319
static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
arch/sparc/include/asm/pgtable_64.h
321
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
428
static inline bool is_hugetlb_pmd(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
430
return !!(pmd_val(pmd) & _PAGE_PMD_HUGE);
arch/sparc/include/asm/pgtable_64.h
439
static inline pmd_t pmd_mkhuge(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
441
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
682
static inline bool pmd_leaf(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
684
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
689
static inline unsigned long pmd_pfn(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
691
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
697
static inline unsigned long pmd_write(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
699
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
708
static inline unsigned long pmd_dirty(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
710
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
716
static inline unsigned long pmd_young(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
718
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
723
static inline unsigned long pmd_trans_huge(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
725
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
730
static inline pmd_t pmd_mkold(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
732
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
739
static inline pmd_t pmd_wrprotect(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
741
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
748
static inline pmd_t pmd_mkdirty(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
750
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
757
static inline pmd_t pmd_mkclean(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
759
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
766
static inline pmd_t pmd_mkyoung(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
768
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
775
static inline pmd_t pmd_mkwrite_novma(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
777
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
793
static inline int pmd_present(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
795
return pmd_val(pmd) != 0UL;
arch/sparc/include/asm/pgtable_64.h
798
#define pmd_none(pmd) (!pmd_val(pmd))
arch/sparc/include/asm/pgtable_64.h
806
#define pmd_bad(pmd) (pmd_val(pmd) & ~PAGE_MASK)
arch/sparc/include/asm/pgtable_64.h
818
pmd_t *pmdp, pmd_t pmd);
arch/sparc/include/asm/pgtable_64.h
821
pmd_t *pmdp, pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
823
*pmdp = pmd;
arch/sparc/include/asm/pgtable_64.h
836
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
arch/sparc/include/asm/pgtable_64.h
838
pte_t pte = __pte(pmd_val(pmd));
arch/sparc/include/asm/pgtable_64.h
856
#define pmd_page(pmd) virt_to_page((void *)pmd_page_vaddr(pmd))
arch/sparc/include/asm/pgtable_64.h
918
pmd_t pmd = *pmdp;
arch/sparc/include/asm/pgtable_64.h
920
return pmd;
arch/sparc/include/asm/pgtable_64.h
987
pmd_t *pmd);
arch/sparc/mm/fault_32.c
276
pmd_t *pmd, *pmd_k;
arch/sparc/mm/fault_32.c
290
pmd = pmd_offset(pud, address);
arch/sparc/mm/fault_32.c
296
if (pmd_present(*pmd) || !pmd_present(*pmd_k))
arch/sparc/mm/fault_32.c
299
*pmd = *pmd_k;
arch/sparc/mm/hugetlbpage.c
187
unsigned long pmd_leaf_size(pmd_t pmd) { return 1UL << tte_to_shift(*(pte_t *)&pmd); }
arch/sparc/mm/hugetlbpage.c
196
pmd_t *pmd;
arch/sparc/mm/hugetlbpage.c
205
pmd = pmd_alloc(mm, pud, addr);
arch/sparc/mm/hugetlbpage.c
206
if (!pmd)
arch/sparc/mm/hugetlbpage.c
209
return (pte_t *)pmd;
arch/sparc/mm/hugetlbpage.c
210
return pte_alloc_huge(mm, pmd, addr);
arch/sparc/mm/hugetlbpage.c
219
pmd_t *pmd;
arch/sparc/mm/hugetlbpage.c
232
pmd = pmd_offset(pud, addr);
arch/sparc/mm/hugetlbpage.c
233
if (pmd_none(*pmd))
arch/sparc/mm/hugetlbpage.c
235
if (is_hugetlb_pmd(*pmd))
arch/sparc/mm/hugetlbpage.c
236
return (pte_t *)pmd;
arch/sparc/mm/hugetlbpage.c
237
return pte_offset_huge(pmd, addr);
arch/sparc/mm/init_64.c
1625
pmd_t *pmd;
arch/sparc/mm/init_64.c
1656
pmd = pmd_offset(pud, addr);
arch/sparc/mm/init_64.c
1657
if (pmd_none(*pmd))
arch/sparc/mm/init_64.c
1660
if (pmd_leaf(*pmd))
arch/sparc/mm/init_64.c
1661
return pfn_valid(pmd_pfn(*pmd));
arch/sparc/mm/init_64.c
1663
pte = pte_offset_kernel(pmd, addr);
arch/sparc/mm/init_64.c
1711
pmd_t *pmd)
arch/sparc/mm/init_64.c
1721
pmd_val(*pmd) = pte_val | _PAGE_PMD_HUGE;
arch/sparc/mm/init_64.c
1738
pmd_val(*pmd) = pte_val;
arch/sparc/mm/init_64.c
1742
pmd++;
arch/sparc/mm/init_64.c
1776
pmd_t *pmd;
arch/sparc/mm/init_64.c
1818
pmd = pmd_offset(pud, vstart);
arch/sparc/mm/init_64.c
1819
if (pmd_none(*pmd)) {
arch/sparc/mm/init_64.c
1823
vstart = kernel_map_hugepmd(vstart, vend, pmd);
arch/sparc/mm/init_64.c
1831
pmd_populate_kernel(&init_mm, pmd, new);
arch/sparc/mm/init_64.c
1834
pte = pte_offset_kernel(pmd, vstart);
arch/sparc/mm/init_64.c
2592
pmd_t *pmd;
arch/sparc/mm/init_64.c
2605
pmd = pmd_offset(pud, vstart);
arch/sparc/mm/init_64.c
2606
pte = pmd_val(*pmd);
arch/sparc/mm/init_64.c
2613
pmd_val(*pmd) = pte_base | __pa(block);
arch/sparc/mm/init_64.c
2935
pmd_t *pmd)
arch/sparc/mm/init_64.c
2939
pmd_t entry = *pmd;
arch/sparc/mm/leon_mm.c
105
printk(KERN_INFO "swprobe: --- pmd (%x) ---\n", pmd);
arch/sparc/mm/leon_mm.c
107
ptr = (pmd & SRMMU_PTD_PMASK) << 4;
arch/sparc/mm/leon_mm.c
40
unsigned int pgd, pmd, ped;
arch/sparc/mm/leon_mm.c
90
pmd = LEON_BYPASS_LOAD_PA(ptr);
arch/sparc/mm/leon_mm.c
91
if (((pmd & SRMMU_ET_MASK) == SRMMU_ET_PTE)) {
arch/sparc/mm/leon_mm.c
95
pte = pmd;
arch/sparc/mm/leon_mm.c
98
if (((pmd & SRMMU_ET_MASK) != SRMMU_ET_PTD)) {
arch/sparc/mm/srmmu.c
106
static inline int srmmu_pmd_none(pmd_t pmd)
arch/sparc/mm/srmmu.c
107
{ return !(pmd_val(pmd) & 0xFFFFFFF); }
arch/sparc/mm/srmmu.c
273
pmd_t *pmd;
arch/sparc/mm/srmmu.c
302
pmd = pmd_offset(__nocache_fix(pud), vaddr);
arch/sparc/mm/srmmu.c
303
pte = pte_offset_kernel(__nocache_fix(pmd), vaddr);
arch/sparc/mm/srmmu.c
902
pmd_t *pmd;
arch/sparc/mm/srmmu.c
965
pmd = pmd_offset(pud, PKMAP_BASE);
arch/sparc/mm/srmmu.c
966
pte = pte_offset_kernel(pmd, PKMAP_BASE);
arch/sparc/mm/tlb.c
157
pmd_t pmd)
arch/sparc/mm/tlb.c
162
pte = pte_offset_map(&pmd, vaddr);
arch/sparc/mm/tlb.c
180
pmd_t orig, pmd_t pmd)
arch/sparc/mm/tlb.c
185
if ((pmd_val(pmd) ^ pmd_val(orig)) & _PAGE_PMD_HUGE) {
arch/sparc/mm/tlb.c
194
if (pmd_val(pmd) & _PAGE_PMD_HUGE) {
arch/sparc/mm/tlb.c
195
if (is_huge_zero_pmd(pmd))
arch/sparc/mm/tlb.c
232
pmd_t *pmdp, pmd_t pmd)
arch/sparc/mm/tlb.c
236
*pmdp = pmd;
arch/sparc/mm/tlb.c
237
__set_pmd_acct(mm, addr, orig, pmd);
arch/sparc/mm/tlb.c
241
unsigned long address, pmd_t *pmdp, pmd_t pmd)
arch/sparc/mm/tlb.c
247
} while (cmpxchg64(&pmdp->pmd, old.pmd, pmd.pmd) != old.pmd);
arch/sparc/mm/tlb.c
248
__set_pmd_acct(vma->vm_mm, address, old, pmd);
arch/um/include/asm/page.h
36
typedef struct { unsigned long pmd; } pmd_t;
arch/um/include/asm/page.h
37
#define pmd_val(x) ((x).pmd)
arch/um/include/asm/pgalloc.h
15
#define pmd_populate_kernel(mm, pmd, pte) \
arch/um/include/asm/pgalloc.h
16
set_pmd(pmd, __pmd(_PAGE_TABLE + (unsigned long) __pa(pte)))
arch/um/include/asm/pgalloc.h
18
#define pmd_populate(mm, pmd, pte) \
arch/um/include/asm/pgalloc.h
19
set_pmd(pmd, __pmd(_PAGE_TABLE + \
arch/um/include/asm/pgalloc.h
33
#define __pmd_free_tlb(tlb, pmd, address) \
arch/um/include/asm/pgalloc.h
34
tlb_remove_ptdesc((tlb), virt_to_ptdesc(pmd))
arch/um/include/asm/pgtable-4level.h
61
#define pud_populate(mm, pud, pmd) \
arch/um/include/asm/pgtable-4level.h
62
set_pud(pud, __pud(_PAGE_TABLE + __pa(pmd)))
arch/um/include/asm/pgtable.h
100
#define pmd_pfn(pmd) (pmd_val(pmd) >> PAGE_SHIFT)
arch/um/include/asm/pgtable.h
101
#define pmd_page(pmd) phys_to_page(pmd_val(pmd) & PAGE_MASK)
arch/um/include/asm/pgtable.h
291
#define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK))
arch/um/kernel/skas/uaccess.c
22
pmd_t *pmd;
arch/um/kernel/skas/uaccess.c
39
pmd = pmd_offset(pud, addr);
arch/um/kernel/skas/uaccess.c
40
if (!pmd_present(*pmd))
arch/um/kernel/skas/uaccess.c
43
return pte_offset_kernel(pmd, addr);
arch/um/kernel/tlb.c
100
pmd = pmd_offset(pud, addr);
arch/um/kernel/tlb.c
103
if (!pmd_present(*pmd)) {
arch/um/kernel/tlb.c
104
if (pmd_needsync(*pmd)) {
arch/um/kernel/tlb.c
107
pmd_mkuptodate(*pmd);
arch/um/kernel/tlb.c
110
else ret = update_pte_range(pmd, addr, next, ops);
arch/um/kernel/tlb.c
111
} while (pmd++, addr = next, ((addr < end) && !ret));
arch/um/kernel/tlb.c
51
static inline int update_pte_range(pmd_t *pmd, unsigned long addr,
arch/um/kernel/tlb.c
58
pte = pte_offset_kernel(pmd, addr);
arch/um/kernel/tlb.c
96
pmd_t *pmd;
arch/um/kernel/trap.c
145
pmd_t *pmd;
arch/um/kernel/trap.c
206
pmd = pmd_off(mm, address);
arch/um/kernel/trap.c
207
pte = pte_offset_kernel(pmd, address);
arch/x86/boot/compressed/ident_map_64.c
198
pmd_t pmd;
arch/x86/boot/compressed/ident_map_64.c
224
pmd = __pmd((unsigned long)pte | info->kernpg_flag);
arch/x86/boot/compressed/ident_map_64.c
225
set_pmd(pmdp, pmd);
arch/x86/boot/startup/map_kernel.c
140
level2_fixmap_pgt[i].pmd += load_delta;
arch/x86/boot/startup/map_kernel.c
149
pud = &early_pgts[0]->pmd;
arch/x86/boot/startup/map_kernel.c
150
pmd = &early_pgts[1]->pmd;
arch/x86/boot/startup/map_kernel.c
156
p4d = &early_pgts[next_early_pgt++]->pmd;
arch/x86/boot/startup/map_kernel.c
172
pud[(i + 0) % PTRS_PER_PUD] = (pudval_t)pmd + pgtable_flags;
arch/x86/boot/startup/map_kernel.c
173
pud[(i + 1) % PTRS_PER_PUD] = (pudval_t)pmd + pgtable_flags;
arch/x86/boot/startup/map_kernel.c
182
pmd[idx % PTRS_PER_PMD] = pmd_entry + i * PMD_SIZE;
arch/x86/boot/startup/map_kernel.c
201
pmd = rip_rel_ptr(level2_kernel_pgt);
arch/x86/boot/startup/map_kernel.c
205
pmd[i] &= ~_PAGE_PRESENT;
arch/x86/boot/startup/map_kernel.c
209
if (pmd[i] & _PAGE_PRESENT)
arch/x86/boot/startup/map_kernel.c
210
pmd[i] += load_delta;
arch/x86/boot/startup/map_kernel.c
214
pmd[i] &= ~_PAGE_PRESENT;
arch/x86/boot/startup/map_kernel.c
216
return sme_postprocess_startup(bp, pmd, p2v_offset);
arch/x86/boot/startup/map_kernel.c
34
pmdval_t *pmd,
arch/x86/boot/startup/map_kernel.c
67
pmd[i] -= sme_get_me_mask();
arch/x86/boot/startup/map_kernel.c
98
pmdval_t *pmd, pmd_entry;
arch/x86/boot/startup/sme.c
115
pmd_t *pmd;
arch/x86/boot/startup/sme.c
135
pmd = ppd->pgtable_area;
arch/x86/boot/startup/sme.c
136
memset(pmd, 0, sizeof(*pmd) * PTRS_PER_PMD);
arch/x86/boot/startup/sme.c
137
ppd->pgtable_area += sizeof(*pmd) * PTRS_PER_PMD;
arch/x86/boot/startup/sme.c
138
set_pud(pud, __pud(PUD_FLAGS | __pa(pmd)));
arch/x86/boot/startup/sme.c
150
pmd_t *pmd;
arch/x86/boot/startup/sme.c
156
pmd = pmd_offset(pud, ppd->vaddr);
arch/x86/boot/startup/sme.c
157
if (pmd_leaf(*pmd))
arch/x86/boot/startup/sme.c
160
set_pmd(pmd, __pmd(ppd->paddr | ppd->pmd_flags));
arch/x86/boot/startup/sme.c
166
pmd_t *pmd;
arch/x86/boot/startup/sme.c
173
pmd = pmd_offset(pud, ppd->vaddr);
arch/x86/boot/startup/sme.c
174
if (pmd_none(*pmd)) {
arch/x86/boot/startup/sme.c
178
set_pmd(pmd, __pmd(PMD_FLAGS | __pa(pte)));
arch/x86/boot/startup/sme.c
181
if (pmd_leaf(*pmd))
arch/x86/boot/startup/sme.c
184
pte = pte_offset_kernel(pmd, ppd->vaddr);
arch/x86/entry/vsyscall/vsyscall_64.c
349
pmd_t *pmd;
arch/x86/entry/vsyscall/vsyscall_64.c
357
pmd = pmd_offset(pud, VSYSCALL_ADDR);
arch/x86/entry/vsyscall/vsyscall_64.c
358
set_pmd(pmd, __pmd(pmd_val(*pmd) | _PAGE_USER));
arch/x86/hyperv/hv_crash.c
511
pmd_t *pmd;
arch/x86/hyperv/hv_crash.c
524
pmd = hv_crash_ptpgs[2] + pmd_index(addr) * sizeof(pmd);
arch/x86/hyperv/hv_crash.c
526
set_pmd(pmd, __pmd(_PAGE_TABLE | pa));
arch/x86/include/asm/kexec.h
165
pmd_t *pmd;
arch/x86/include/asm/paravirt.h
382
static inline void set_pmd(pmd_t *pmdp, pmd_t pmd)
arch/x86/include/asm/paravirt.h
384
PVOP_VCALL2(pv_ops, mmu.set_pmd, pmdp, native_pmd_val(pmd));
arch/x86/include/asm/paravirt.h
393
static inline pmdval_t pmd_val(pmd_t pmd)
arch/x86/include/asm/paravirt.h
395
return PVOP_ALT_CALLEE1(pmdval_t, pv_ops, mmu.pmd_val, pmd.pmd,
arch/x86/include/asm/pgalloc.h
100
set_pud(pud, __pud(_PAGE_TABLE | __pa(pmd)));
arch/x86/include/asm/pgalloc.h
103
static inline void pud_populate_safe(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
arch/x86/include/asm/pgalloc.h
105
paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
arch/x86/include/asm/pgalloc.h
106
set_pud_safe(pud, __pud(_PAGE_TABLE | __pa(pmd)));
arch/x86/include/asm/pgalloc.h
63
pmd_t *pmd, pte_t *pte)
arch/x86/include/asm/pgalloc.h
66
set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
arch/x86/include/asm/pgalloc.h
70
pmd_t *pmd, pte_t *pte)
arch/x86/include/asm/pgalloc.h
73
set_pmd_safe(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
arch/x86/include/asm/pgalloc.h
76
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
arch/x86/include/asm/pgalloc.h
82
set_pmd(pmd, __pmd(((pteval_t)pfn << PAGE_SHIFT) | _PAGE_TABLE));
arch/x86/include/asm/pgalloc.h
86
extern void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd);
arch/x86/include/asm/pgalloc.h
88
static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
arch/x86/include/asm/pgalloc.h
91
___pmd_free_tlb(tlb, pmd);
arch/x86/include/asm/pgalloc.h
95
extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd);
arch/x86/include/asm/pgalloc.h
97
static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
arch/x86/include/asm/pgalloc.h
99
paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
arch/x86/include/asm/pgtable-2level.h
20
static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
arch/x86/include/asm/pgtable-2level.h
22
*pmdp = pmd;
arch/x86/include/asm/pgtable-3level.h
110
return pxx_xchg64(pmd, pmdp, 0ULL);
arch/x86/include/asm/pgtable-3level.h
126
unsigned long address, pmd_t *pmdp, pmd_t pmd)
arch/x86/include/asm/pgtable-3level.h
135
if (!(pmd_val(pmd) & _PAGE_PRESENT)) {
arch/x86/include/asm/pgtable-3level.h
137
old.pmd_low = xchg(&pmdp->pmd_low, pmd.pmd_low);
arch/x86/include/asm/pgtable-3level.h
139
WRITE_ONCE(pmdp->pmd_high, pmd.pmd_high);
arch/x86/include/asm/pgtable-3level.h
144
return pxx_xchg64(pmd, pmdp, pmd.pmd);
arch/x86/include/asm/pgtable-3level.h
48
static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
arch/x86/include/asm/pgtable-3level.h
50
pxx_xchg64(pmd, pmdp, native_pmd_val(pmd));
arch/x86/include/asm/pgtable-3level_types.h
26
pmdval_t pmd;
arch/x86/include/asm/pgtable.h
1007
static inline int pmd_protnone(pmd_t pmd)
arch/x86/include/asm/pgtable.h
1009
return (pmd_flags(pmd) & (_PAGE_PROTNONE | _PAGE_PRESENT))
arch/x86/include/asm/pgtable.h
1014
static inline int pmd_none(pmd_t pmd)
arch/x86/include/asm/pgtable.h
1018
unsigned long val = native_pmd_val(pmd);
arch/x86/include/asm/pgtable.h
1022
static inline unsigned long pmd_page_vaddr(pmd_t pmd)
arch/x86/include/asm/pgtable.h
1024
return (unsigned long)__va(pmd_val(pmd) & pmd_pfn_mask(pmd));
arch/x86/include/asm/pgtable.h
1031
#define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd))
arch/x86/include/asm/pgtable.h
1033
static inline int pmd_bad(pmd_t pmd)
arch/x86/include/asm/pgtable.h
1035
return (pmd_flags(pmd) & ~(_PAGE_USER | _PAGE_ACCESSED)) !=
arch/x86/include/asm/pgtable.h
1215
pmd_t *pmdp, pmd_t pmd)
arch/x86/include/asm/pgtable.h
1217
page_table_check_pmd_set(mm, addr, pmdp, pmd);
arch/x86/include/asm/pgtable.h
1218
set_pmd(pmdp, pmd);
arch/x86/include/asm/pgtable.h
124
static inline pmd_t pmd_set_flags(pmd_t pmd, pmdval_t set)
arch/x86/include/asm/pgtable.h
126
pmdval_t v = native_pmd_val(pmd);
arch/x86/include/asm/pgtable.h
131
static inline pmd_t pmd_clear_flags(pmd_t pmd, pmdval_t clear)
arch/x86/include/asm/pgtable.h
1320
pmd_t pmd = native_pmdp_get_and_clear(pmdp);
arch/x86/include/asm/pgtable.h
1322
page_table_check_pmd_clear(mm, addr, pmd);
arch/x86/include/asm/pgtable.h
1324
return pmd;
arch/x86/include/asm/pgtable.h
133
pmdval_t v = native_pmd_val(pmd);
arch/x86/include/asm/pgtable.h
1358
unsigned long address, pmd_t *pmdp, pmd_t pmd)
arch/x86/include/asm/pgtable.h
1360
page_table_check_pmd_set(vma->vm_mm, address, pmdp, pmd);
arch/x86/include/asm/pgtable.h
1362
return xchg(pmdp, pmd);
arch/x86/include/asm/pgtable.h
1365
WRITE_ONCE(*pmdp, pmd);
arch/x86/include/asm/pgtable.h
1506
unsigned long addr, pmd_t *pmd)
arch/x86/include/asm/pgtable.h
1545
static inline pmd_t pmd_swp_mksoft_dirty(pmd_t pmd)
arch/x86/include/asm/pgtable.h
1547
return pmd_set_flags(pmd, _PAGE_SWP_SOFT_DIRTY);
arch/x86/include/asm/pgtable.h
1550
static inline int pmd_swp_soft_dirty(pmd_t pmd)
arch/x86/include/asm/pgtable.h
1552
return pmd_flags(pmd) & _PAGE_SWP_SOFT_DIRTY;
arch/x86/include/asm/pgtable.h
1555
static inline pmd_t pmd_swp_clear_soft_dirty(pmd_t pmd)
arch/x86/include/asm/pgtable.h
1557
return pmd_clear_flags(pmd, _PAGE_SWP_SOFT_DIRTY);
arch/x86/include/asm/pgtable.h
1578
static inline pmd_t pmd_swp_mkuffd_wp(pmd_t pmd)
arch/x86/include/asm/pgtable.h
1580
return pmd_set_flags(pmd, _PAGE_SWP_UFFD_WP);
arch/x86/include/asm/pgtable.h
1583
static inline int pmd_swp_uffd_wp(pmd_t pmd)
arch/x86/include/asm/pgtable.h
1585
return pmd_flags(pmd) & _PAGE_SWP_UFFD_WP;
arch/x86/include/asm/pgtable.h
1588
static inline pmd_t pmd_swp_clear_uffd_wp(pmd_t pmd)
arch/x86/include/asm/pgtable.h
1590
return pmd_clear_flags(pmd, _PAGE_SWP_UFFD_WP);
arch/x86/include/asm/pgtable.h
1646
static inline bool pmd_access_permitted(pmd_t pmd, bool write)
arch/x86/include/asm/pgtable.h
1648
return __pte_access_permitted(pmd_val(pmd), write);
arch/x86/include/asm/pgtable.h
1669
void arch_check_zapped_pmd(struct vm_area_struct *vma, pmd_t pmd);
arch/x86/include/asm/pgtable.h
1688
static inline bool pmd_user_accessible_page(pmd_t pmd, unsigned long addr)
arch/x86/include/asm/pgtable.h
1690
return pmd_leaf(pmd) && (pmd_val(pmd) & _PAGE_PRESENT) && (pmd_val(pmd) & _PAGE_USER);
arch/x86/include/asm/pgtable.h
1721
#define set_pmd_safe(pmdp, pmd) \
arch/x86/include/asm/pgtable.h
1723
WARN_ON_ONCE(pmd_present(*pmdp) && !pmd_same(*pmdp, pmd)); \
arch/x86/include/asm/pgtable.h
1724
set_pmd(pmdp, pmd); \
arch/x86/include/asm/pgtable.h
178
static inline bool pmd_dirty(pmd_t pmd)
arch/x86/include/asm/pgtable.h
180
return pmd_flags(pmd) & _PAGE_DIRTY_BITS;
arch/x86/include/asm/pgtable.h
183
static inline bool pmd_shstk(pmd_t pmd)
arch/x86/include/asm/pgtable.h
186
(pmd_flags(pmd) & (_PAGE_RW | _PAGE_DIRTY | _PAGE_PSE)) ==
arch/x86/include/asm/pgtable.h
191
static inline int pmd_young(pmd_t pmd)
arch/x86/include/asm/pgtable.h
193
return pmd_flags(pmd) & _PAGE_ACCESSED;
arch/x86/include/asm/pgtable.h
223
static inline int pmd_write(pmd_t pmd)
arch/x86/include/asm/pgtable.h
229
return (pmd_flags(pmd) & _PAGE_RW) || pmd_shstk(pmd);
arch/x86/include/asm/pgtable.h
271
static inline unsigned long pmd_pfn(pmd_t pmd)
arch/x86/include/asm/pgtable.h
273
phys_addr_t pfn = pmd_val(pmd);
arch/x86/include/asm/pgtable.h
275
return (pfn & pmd_pfn_mask(pmd)) >> PAGE_SHIFT;
arch/x86/include/asm/pgtable.h
28
bool __init __early_make_pgtable(unsigned long address, pmdval_t pmd);
arch/x86/include/asm/pgtable.h
305
static inline int pmd_trans_huge(pmd_t pmd)
arch/x86/include/asm/pgtable.h
307
return (pmd_val(pmd) & _PAGE_PSE) == _PAGE_PSE;
arch/x86/include/asm/pgtable.h
324
static inline bool pmd_special(pmd_t pmd)
arch/x86/include/asm/pgtable.h
326
return pmd_flags(pmd) & _PAGE_SPECIAL;
arch/x86/include/asm/pgtable.h
329
static inline pmd_t pmd_mkspecial(pmd_t pmd)
arch/x86/include/asm/pgtable.h
331
return pmd_set_flags(pmd, _PAGE_SPECIAL);
arch/x86/include/asm/pgtable.h
507
static inline pmd_t pmd_mksaveddirty(pmd_t pmd)
arch/x86/include/asm/pgtable.h
509
pmdval_t v = native_pmd_val(pmd);
arch/x86/include/asm/pgtable.h
516
static inline pmd_t pmd_clear_saveddirty(pmd_t pmd)
arch/x86/include/asm/pgtable.h
518
pmdval_t v = native_pmd_val(pmd);
arch/x86/include/asm/pgtable.h
524
static inline pmd_t pmd_wrprotect(pmd_t pmd)
arch/x86/include/asm/pgtable.h
526
pmd = pmd_clear_flags(pmd, _PAGE_RW);
arch/x86/include/asm/pgtable.h
533
return pmd_mksaveddirty(pmd);
arch/x86/include/asm/pgtable.h
537
static inline int pmd_uffd_wp(pmd_t pmd)
arch/x86/include/asm/pgtable.h
539
return pmd_flags(pmd) & _PAGE_UFFD_WP;
arch/x86/include/asm/pgtable.h
542
static inline pmd_t pmd_mkuffd_wp(pmd_t pmd)
arch/x86/include/asm/pgtable.h
544
return pmd_wrprotect(pmd_set_flags(pmd, _PAGE_UFFD_WP));
arch/x86/include/asm/pgtable.h
547
static inline pmd_t pmd_clear_uffd_wp(pmd_t pmd)
arch/x86/include/asm/pgtable.h
549
return pmd_clear_flags(pmd, _PAGE_UFFD_WP);
arch/x86/include/asm/pgtable.h
553
static inline pmd_t pmd_mkold(pmd_t pmd)
arch/x86/include/asm/pgtable.h
555
return pmd_clear_flags(pmd, _PAGE_ACCESSED);
arch/x86/include/asm/pgtable.h
558
static inline pmd_t pmd_mkclean(pmd_t pmd)
arch/x86/include/asm/pgtable.h
560
return pmd_clear_flags(pmd, _PAGE_DIRTY_BITS);
arch/x86/include/asm/pgtable.h
563
static inline pmd_t pmd_mkdirty(pmd_t pmd)
arch/x86/include/asm/pgtable.h
565
pmd = pmd_set_flags(pmd, _PAGE_DIRTY | _PAGE_SOFT_DIRTY);
arch/x86/include/asm/pgtable.h
567
return pmd_mksaveddirty(pmd);
arch/x86/include/asm/pgtable.h
570
static inline pmd_t pmd_mkwrite_shstk(pmd_t pmd)
arch/x86/include/asm/pgtable.h
572
pmd = pmd_clear_flags(pmd, _PAGE_RW);
arch/x86/include/asm/pgtable.h
574
return pmd_set_flags(pmd, _PAGE_DIRTY);
arch/x86/include/asm/pgtable.h
577
static inline pmd_t pmd_mkhuge(pmd_t pmd)
arch/x86/include/asm/pgtable.h
579
return pmd_set_flags(pmd, _PAGE_PSE);
arch/x86/include/asm/pgtable.h
582
static inline pmd_t pmd_mkyoung(pmd_t pmd)
arch/x86/include/asm/pgtable.h
584
return pmd_set_flags(pmd, _PAGE_ACCESSED);
arch/x86/include/asm/pgtable.h
587
static inline pmd_t pmd_mkwrite_novma(pmd_t pmd)
arch/x86/include/asm/pgtable.h
589
return pmd_set_flags(pmd, _PAGE_RW);
arch/x86/include/asm/pgtable.h
592
pmd_t pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma);
arch/x86/include/asm/pgtable.h
665
static inline int pmd_soft_dirty(pmd_t pmd)
arch/x86/include/asm/pgtable.h
667
return pmd_flags(pmd) & _PAGE_SOFT_DIRTY;
arch/x86/include/asm/pgtable.h
680
static inline pmd_t pmd_mksoft_dirty(pmd_t pmd)
arch/x86/include/asm/pgtable.h
682
return pmd_set_flags(pmd, _PAGE_SOFT_DIRTY);
arch/x86/include/asm/pgtable.h
695
static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd)
arch/x86/include/asm/pgtable.h
697
return pmd_clear_flags(pmd, _PAGE_SOFT_DIRTY);
arch/x86/include/asm/pgtable.h
73
#define set_pmd(pmdp, pmd) native_set_pmd(pmdp, pmd)
arch/x86/include/asm/pgtable.h
765
static inline pmd_t pmd_mkinvalid(pmd_t pmd)
arch/x86/include/asm/pgtable.h
767
return pfn_pmd(pmd_pfn(pmd),
arch/x86/include/asm/pgtable.h
768
__pgprot(pmd_flags(pmd) & ~(_PAGE_PRESENT|_PAGE_PROTNONE)));
arch/x86/include/asm/pgtable.h
812
static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
arch/x86/include/asm/pgtable.h
814
pmdval_t val = pmd_val(pmd), oldval = val;
arch/x86/include/asm/pgtable.h
97
#define pmd_clear(pmd) native_pmd_clear(pmd)
arch/x86/include/asm/pgtable.h
985
static inline int pmd_present(pmd_t pmd)
arch/x86/include/asm/pgtable.h
993
return pmd_flags(pmd) & (_PAGE_PRESENT | _PAGE_PROTNONE | _PAGE_PSE);
arch/x86/include/asm/pgtable_64.h
103
return native_make_pmd(xchg(&xp->pmd, 0));
arch/x86/include/asm/pgtable_64.h
236
#define __pmd_to_swp_entry(pmd) ((swp_entry_t) { pmd_val((pmd)) })
arch/x86/include/asm/pgtable_64.h
77
static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
arch/x86/include/asm/pgtable_64.h
79
WRITE_ONCE(*pmdp, pmd);
arch/x86/include/asm/pgtable_64.h
82
static inline void native_pmd_clear(pmd_t *pmd)
arch/x86/include/asm/pgtable_64.h
84
native_set_pmd(pmd, native_make_pmd(0));
arch/x86/include/asm/pgtable_64_types.h
22
typedef struct { pmdval_t pmd; } pmd_t;
arch/x86/include/asm/pgtable_types.h
396
return (pmd_t) { .pmd = val };
arch/x86/include/asm/pgtable_types.h
399
static inline pmdval_t native_pmd_val(pmd_t pmd)
arch/x86/include/asm/pgtable_types.h
401
return pmd.pmd;
arch/x86/include/asm/pgtable_types.h
411
static inline pmdval_t native_pmd_val(pmd_t pmd)
arch/x86/include/asm/pgtable_types.h
413
return native_pgd_val(pmd.pud.p4d.pgd);
arch/x86/include/asm/pgtable_types.h
451
static inline pmdval_t pmd_pfn_mask(pmd_t pmd)
arch/x86/include/asm/pgtable_types.h
453
if (native_pmd_val(pmd) & _PAGE_PSE)
arch/x86/include/asm/pgtable_types.h
459
static inline pmdval_t pmd_flags_mask(pmd_t pmd)
arch/x86/include/asm/pgtable_types.h
461
return ~pmd_pfn_mask(pmd);
arch/x86/include/asm/pgtable_types.h
464
static inline pmdval_t pmd_flags(pmd_t pmd)
arch/x86/include/asm/pgtable_types.h
466
return native_pmd_val(pmd) & pmd_flags_mask(pmd);
arch/x86/include/asm/xen/page.h
334
#define pmd_val_ma(v) ((v).pmd)
arch/x86/kernel/espfix_64.c
130
pmd_t pmd, *pmd_p;
arch/x86/kernel/espfix_64.c
175
pmd = *pmd_p;
arch/x86/kernel/espfix_64.c
176
if (!pmd_present(pmd)) {
arch/x86/kernel/espfix_64.c
180
pmd = __pmd(__pa(pte_p) | (PGTABLE_PROT & ptemask));
arch/x86/kernel/espfix_64.c
183
set_pmd(&pmd_p[n], pmd);
arch/x86/kernel/espfix_64.c
186
pte_p = pte_offset_kernel(&pmd, addr);
arch/x86/kernel/head32.c
98
#define SET_PL2(val) { .pmd = (val), }
arch/x86/kernel/head64.c
144
pmd_p[pmd_index(address)] = pmd;
arch/x86/kernel/head64.c
152
pmdval_t pmd;
arch/x86/kernel/head64.c
154
pmd = (physaddr & PMD_MASK) + early_pmd_flags;
arch/x86/kernel/head64.c
156
return __early_make_pgtable(address, pmd);
arch/x86/kernel/head64.c
79
bool __init __early_make_pgtable(unsigned long address, pmdval_t pmd)
arch/x86/kernel/ldt.c
256
had_kernel = (k_pmd->pmd != 0);
arch/x86/kernel/ldt.c
257
had_user = (u_pmd->pmd != 0);
arch/x86/kernel/machine_kexec_32.c
103
pmd_t *pmd = NULL;
arch/x86/kernel/machine_kexec_32.c
107
pmd = image->arch.pmd0;
arch/x86/kernel/machine_kexec_32.c
110
image->arch.pgd, pmd, image->arch.pte0,
arch/x86/kernel/machine_kexec_32.c
113
pmd = image->arch.pmd1;
arch/x86/kernel/machine_kexec_32.c
116
image->arch.pgd, pmd, image->arch.pte1,
arch/x86/kernel/machine_kexec_32.c
80
pgd_t *pgd, pmd_t *pmd, pte_t *pte,
arch/x86/kernel/machine_kexec_32.c
89
set_pgd(pgd, __pgd(__pa(pmd) | _PAGE_PRESENT));
arch/x86/kernel/machine_kexec_32.c
93
pmd = pmd_offset(pud, vaddr);
arch/x86/kernel/machine_kexec_32.c
94
if (!(pmd_val(*pmd) & _PAGE_PRESENT))
arch/x86/kernel/machine_kexec_32.c
95
set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
arch/x86/kernel/machine_kexec_32.c
96
pte = pte_offset_kernel(pmd, vaddr);
arch/x86/kernel/machine_kexec_64.c
157
free_page((unsigned long)image->arch.pmd);
arch/x86/kernel/machine_kexec_64.c
158
image->arch.pmd = NULL;
arch/x86/kernel/machine_kexec_64.c
171
pmd_t *pmd;
arch/x86/kernel/machine_kexec_64.c
199
pmd = (pmd_t *)get_zeroed_page(GFP_KERNEL);
arch/x86/kernel/machine_kexec_64.c
200
if (!pmd)
arch/x86/kernel/machine_kexec_64.c
202
image->arch.pmd = pmd;
arch/x86/kernel/machine_kexec_64.c
203
set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE));
arch/x86/kernel/machine_kexec_64.c
205
pmd = pmd_offset(pud, vaddr);
arch/x86/kernel/machine_kexec_64.c
206
if (!pmd_present(*pmd)) {
arch/x86/kernel/machine_kexec_64.c
211
set_pmd(pmd, __pmd(__pa(pte) | _KERNPG_TABLE));
arch/x86/kernel/machine_kexec_64.c
213
pte = pte_offset_kernel(pmd, vaddr);
arch/x86/kernel/tboot.c
119
pmd_t *pmd;
arch/x86/kernel/tboot.c
129
pmd = pmd_alloc(&tboot_mm, pud, vaddr);
arch/x86/kernel/tboot.c
130
if (!pmd)
arch/x86/kernel/tboot.c
132
pte = pte_alloc_map(&tboot_mm, pmd, vaddr);
arch/x86/kvm/mmu/mmu.c
3240
pmd_t pmd;
arch/x86/kvm/mmu/mmu.c
3283
pmd = READ_ONCE(*pmd_offset(&pud, hva));
arch/x86/kvm/mmu/mmu.c
3284
if (pmd_none(pmd) || !pmd_present(pmd))
arch/x86/kvm/mmu/mmu.c
3287
if (pmd_leaf(pmd))
arch/x86/mm/dump_pagetables.c
274
static void effective_prot_pmd(struct ptdump_state *st, pmd_t pmd)
arch/x86/mm/dump_pagetables.c
276
effective_prot(st, 3, pmd_val(pmd));
arch/x86/mm/dump_pagetables.c
396
static void note_page_pmd(struct ptdump_state *pt_st, unsigned long addr, pmd_t pmd)
arch/x86/mm/dump_pagetables.c
398
note_page(pt_st, addr, 3, pmd_val(pmd));
arch/x86/mm/fault.c
1020
pmd = pmd_offset(pud, address);
arch/x86/mm/fault.c
1021
if (!pmd_present(*pmd))
arch/x86/mm/fault.c
1024
if (pmd_leaf(*pmd))
arch/x86/mm/fault.c
1025
return spurious_kernel_fault_check(error_code, (pte_t *) pmd);
arch/x86/mm/fault.c
1027
pte = pte_offset_kernel(pmd, address);
arch/x86/mm/fault.c
1039
ret = spurious_kernel_fault_check(error_code, (pte_t *) pmd);
arch/x86/mm/fault.c
181
pmd_t *pmd, *pmd_k;
arch/x86/mm/fault.c
204
pmd = pmd_offset(pud, address);
arch/x86/mm/fault.c
207
if (pmd_present(*pmd) != pmd_present(*pmd_k))
arch/x86/mm/fault.c
208
set_pmd(pmd, *pmd_k);
arch/x86/mm/fault.c
213
BUG_ON(pmd_pfn(*pmd) != pmd_pfn(*pmd_k));
arch/x86/mm/fault.c
300
pmd_t *pmd;
arch/x86/mm/fault.c
313
pmd = pmd_offset(pud, address);
arch/x86/mm/fault.c
314
pr_pde("*pde = %0*Lx ", sizeof(*pmd) * 2, (u64)pmd_val(*pmd));
arch/x86/mm/fault.c
323
if (!low_pfn(pmd_pfn(*pmd)) || !pmd_present(*pmd) || pmd_leaf(*pmd))
arch/x86/mm/fault.c
326
pte = pte_offset_kernel(pmd, address);
arch/x86/mm/fault.c
356
pmd_t *pmd;
arch/x86/mm/fault.c
383
pmd = pmd_offset(pud, address);
arch/x86/mm/fault.c
384
if (bad_address(pmd))
arch/x86/mm/fault.c
387
pr_cont("PMD %lx ", pmd_val(*pmd));
arch/x86/mm/fault.c
388
if (!pmd_present(*pmd) || pmd_leaf(*pmd))
arch/x86/mm/fault.c
391
pte = pte_offset_kernel(pmd, address);
arch/x86/mm/fault.c
985
pmd_t *pmd;
arch/x86/mm/ident_map.c
101
pmd_t *pmd;
arch/x86/mm/ident_map.c
131
pmd = pmd_offset(pud, 0);
arch/x86/mm/ident_map.c
132
ident_pmd_init(info, pmd, addr, next);
arch/x86/mm/ident_map.c
135
pmd = (pmd_t *)info->alloc_pgt_page(info->context);
arch/x86/mm/ident_map.c
136
if (!pmd)
arch/x86/mm/ident_map.c
138
ident_pmd_init(info, pmd, addr, next);
arch/x86/mm/ident_map.c
139
set_pud(pud, __pud(__pa(pmd) | info->kernpg_flag));
arch/x86/mm/ident_map.c
16
pmd_t *pmd = pmd_offset(pud, 0);
arch/x86/mm/ident_map.c
20
if (!pmd_present(pmd[i]))
arch/x86/mm/ident_map.c
23
if (pmd_leaf(pmd[i]))
arch/x86/mm/ident_map.c
26
free_pte(info, &pmd[i]);
arch/x86/mm/ident_map.c
29
info->free_pgt_page(pmd, info->context);
arch/x86/mm/ident_map.c
7
static void free_pte(struct x86_mapping_info *info, pmd_t *pmd)
arch/x86/mm/ident_map.c
85
pmd_t *pmd = pmd_page + pmd_index(addr);
arch/x86/mm/ident_map.c
87
if (pmd_present(*pmd))
arch/x86/mm/ident_map.c
9
pte_t *pte = pte_offset_kernel(pmd, 0);
arch/x86/mm/ident_map.c
90
set_pmd(pmd, __pmd((addr - info->offset) | info->page_flag));
arch/x86/mm/init_32.c
100
set_pmd(pmd, __pmd(__pa(page_table) | _PAGE_TABLE));
arch/x86/mm/init_32.c
101
BUG_ON(page_table != pte_offset_kernel(pmd, 0));
arch/x86/mm/init_32.c
104
return pte_offset_kernel(pmd, 0);
arch/x86/mm/init_32.c
118
pmd_t *pmd;
arch/x86/mm/init_32.c
120
pmd = populate_extra_pmd(vaddr);
arch/x86/mm/init_32.c
121
return one_page_table_init(pmd) + pte_idx;
arch/x86/mm/init_32.c
155
static pte_t *__init page_table_kmap_check(pte_t *pte, pmd_t *pmd,
arch/x86/mm/init_32.c
181
set_pmd(pmd, __pmd(__pa(newpte)|_PAGE_TABLE));
arch/x86/mm/init_32.c
182
BUG_ON(newpte != pte_offset_kernel(pmd, 0));
arch/x86/mm/init_32.c
209
pmd_t *pmd;
arch/x86/mm/init_32.c
223
pmd = one_md_table_init(pgd);
arch/x86/mm/init_32.c
224
pmd = pmd + pmd_index(vaddr);
arch/x86/mm/init_32.c
226
pmd++, pmd_idx++) {
arch/x86/mm/init_32.c
227
pte = page_table_kmap_check(one_page_table_init(pmd),
arch/x86/mm/init_32.c
228
pmd, vaddr, pte, &adr);
arch/x86/mm/init_32.c
261
pmd_t *pmd;
arch/x86/mm/init_32.c
294
pmd = one_md_table_init(pgd);
arch/x86/mm/init_32.c
300
pmd += pmd_idx;
arch/x86/mm/init_32.c
305
pmd++, pmd_idx++) {
arch/x86/mm/init_32.c
333
set_pmd(pmd, pfn_pmd(pfn, init_prot));
arch/x86/mm/init_32.c
335
set_pmd(pmd, pfn_pmd(pfn, prot));
arch/x86/mm/init_32.c
340
pte = one_page_table_init(pmd);
arch/x86/mm/init_32.c
424
pmd_t *pmd;
arch/x86/mm/init_32.c
444
pmd = pmd_offset(pud, va);
arch/x86/mm/init_32.c
445
if (!pmd_present(*pmd))
arch/x86/mm/init_32.c
449
if (pmd_leaf(*pmd)) {
arch/x86/mm/init_32.c
451
pfn, pmd, __pa(pmd));
arch/x86/mm/init_32.c
455
pte = pte_offset_kernel(pmd, va);
arch/x86/mm/init_32.c
460
pfn, pmd, __pa(pmd), pte, __pa(pte));
arch/x86/mm/init_32.c
95
static pte_t * __init one_page_table_init(pmd_t *pmd)
arch/x86/mm/init_32.c
97
if (!(pmd_val(*pmd) & _PAGE_PRESENT)) {
arch/x86/mm/init_64.c
1040
static void __meminit free_pte_table(pte_t *pte_start, pmd_t *pmd)
arch/x86/mm/init_64.c
1052
free_pagetable(pmd_page(*pmd), 0);
arch/x86/mm/init_64.c
1054
pmd_clear(pmd);
arch/x86/mm/init_64.c
1060
pmd_t *pmd;
arch/x86/mm/init_64.c
1064
pmd = pmd_start + i;
arch/x86/mm/init_64.c
1065
if (!pmd_none(*pmd))
arch/x86/mm/init_64.c
1143
pmd_t *pmd;
arch/x86/mm/init_64.c
1145
pmd = pmd_start + pmd_index(addr);
arch/x86/mm/init_64.c
1146
for (; addr < end; addr = next, pmd++) {
arch/x86/mm/init_64.c
1149
if (!pmd_present(*pmd))
arch/x86/mm/init_64.c
1152
if (pmd_leaf(*pmd)) {
arch/x86/mm/init_64.c
1156
free_hugepage_table(pmd_page(*pmd),
arch/x86/mm/init_64.c
1160
pmd_clear(pmd);
arch/x86/mm/init_64.c
1164
free_hugepage_table(pmd_page(*pmd),
arch/x86/mm/init_64.c
1167
pmd_clear(pmd);
arch/x86/mm/init_64.c
1173
pte_base = (pte_t *)pmd_page_vaddr(*pmd);
arch/x86/mm/init_64.c
1175
free_pte_table(pte_base, pmd);
arch/x86/mm/init_64.c
1518
void __meminit vmemmap_set_pmd(pmd_t *pmd, void *p, int node,
arch/x86/mm/init_64.c
1525
set_pmd(pmd, __pmd(pte_val(entry)));
arch/x86/mm/init_64.c
1545
int __meminit vmemmap_check_pmd(pmd_t *pmd, int node,
arch/x86/mm/init_64.c
1548
int large = pmd_leaf(*pmd);
arch/x86/mm/init_64.c
1550
if (pmd_leaf(*pmd)) {
arch/x86/mm/init_64.c
1551
vmemmap_verify((pte_t *)pmd, node, addr, next);
arch/x86/mm/init_64.c
1591
pmd_t *pmd;
arch/x86/mm/init_64.c
1619
pmd = pmd_offset(pud, addr);
arch/x86/mm/init_64.c
1620
if (pmd_none(*pmd)) {
arch/x86/mm/init_64.c
1625
if (!boot_cpu_has(X86_FEATURE_PSE) || !pmd_leaf(*pmd)) {
arch/x86/mm/init_64.c
1627
get_page_bootmem(section_nr, pmd_page(*pmd),
arch/x86/mm/init_64.c
1630
pte = pte_offset_kernel(pmd, addr);
arch/x86/mm/init_64.c
1638
page = pmd_page(*pmd);
arch/x86/mm/init_64.c
294
pmd_t *pmd = (pmd_t *) spp_getpage();
arch/x86/mm/init_64.c
295
pud_populate(&init_mm, pud, pmd);
arch/x86/mm/init_64.c
296
if (pmd != pmd_offset(pud, 0))
arch/x86/mm/init_64.c
298
pmd, pmd_offset(pud, 0));
arch/x86/mm/init_64.c
303
static pte_t *fill_pte(pmd_t *pmd, unsigned long vaddr)
arch/x86/mm/init_64.c
305
if (pmd_none(*pmd)) {
arch/x86/mm/init_64.c
307
pmd_populate_kernel(&init_mm, pmd, pte);
arch/x86/mm/init_64.c
308
if (pte != pte_offset_kernel(pmd, 0))
arch/x86/mm/init_64.c
311
return pte_offset_kernel(pmd, vaddr);
arch/x86/mm/init_64.c
316
pmd_t *pmd = fill_pmd(pud, vaddr);
arch/x86/mm/init_64.c
317
pte_t *pte = fill_pte(pmd, vaddr);
arch/x86/mm/init_64.c
375
pmd_t *pmd;
arch/x86/mm/init_64.c
377
pmd = populate_extra_pmd(vaddr);
arch/x86/mm/init_64.c
378
return fill_pte(pmd, vaddr);
arch/x86/mm/init_64.c
390
pmd_t *pmd;
arch/x86/mm/init_64.c
411
pmd = (pmd_t *) spp_getpage();
arch/x86/mm/init_64.c
412
set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE |
arch/x86/mm/init_64.c
415
pmd = pmd_offset(pud, phys);
arch/x86/mm/init_64.c
416
BUG_ON(!pmd_none(*pmd));
arch/x86/mm/init_64.c
417
set_pmd(pmd, __pmd(phys | pgprot_val(prot)));
arch/x86/mm/init_64.c
449
pmd_t *pmd = level2_kernel_pgt;
arch/x86/mm/init_64.c
459
for (; vaddr + PMD_SIZE - 1 < vaddr_end; pmd++, vaddr += PMD_SIZE) {
arch/x86/mm/init_64.c
460
if (pmd_none(*pmd))
arch/x86/mm/init_64.c
463
set_pmd(pmd, __pmd(0));
arch/x86/mm/init_64.c
532
pmd_t *pmd = pmd_page + pmd_index(paddr);
arch/x86/mm/init_64.c
543
set_pmd_init(pmd, __pmd(0), init);
arch/x86/mm/init_64.c
547
if (!pmd_none(*pmd)) {
arch/x86/mm/init_64.c
548
if (!pmd_leaf(*pmd)) {
arch/x86/mm/init_64.c
550
pte = (pte_t *)pmd_page_vaddr(*pmd);
arch/x86/mm/init_64.c
575
new_prot = pte_pgprot(pte_clrhuge(*(pte_t *)pmd));
arch/x86/mm/init_64.c
581
set_pmd_init(pmd,
arch/x86/mm/init_64.c
593
pmd_populate_kernel_init(&init_mm, pmd, pte, init);
arch/x86/mm/init_64.c
617
pmd_t *pmd;
arch/x86/mm/init_64.c
636
pmd = pmd_offset(pud, 0);
arch/x86/mm/init_64.c
637
paddr_last = phys_pmd_init(pmd, paddr,
arch/x86/mm/init_64.c
675
pmd = alloc_low_page();
arch/x86/mm/init_64.c
676
paddr_last = phys_pmd_init(pmd, paddr, paddr_end,
arch/x86/mm/init_64.c
680
pud_populate_init(&init_mm, pud, pmd, init);
arch/x86/mm/init_64.c
75
DEFINE_POPULATE(pud_populate, pud, pmd, init)
arch/x86/mm/init_64.c
76
DEFINE_POPULATE(pmd_populate_kernel, pmd, pte, init)
arch/x86/mm/init_64.c
90
DEFINE_ENTRY(pmd, pmd, init)
arch/x86/mm/ioremap.c
833
pmd_t *pmd = pmd_offset(pud, addr);
arch/x86/mm/ioremap.c
835
return pmd;
arch/x86/mm/ioremap.c
850
pmd_t *pmd;
arch/x86/mm/ioremap.c
860
pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
arch/x86/mm/ioremap.c
862
pmd_populate_kernel(&init_mm, pmd, bm_pte);
arch/x86/mm/ioremap.c
872
if (pmd != early_ioremap_pmd(fix_to_virt(FIX_BTMAP_END))) {
arch/x86/mm/ioremap.c
875
pmd, early_ioremap_pmd(fix_to_virt(FIX_BTMAP_END)));
arch/x86/mm/kasan_init_64.c
37
static void __init kasan_populate_pmd(pmd_t *pmd, unsigned long addr,
arch/x86/mm/kasan_init_64.c
42
if (pmd_none(*pmd)) {
arch/x86/mm/kasan_init_64.c
49
if (p && pmd_set_huge(pmd, __pa(p), PAGE_KERNEL))
arch/x86/mm/kasan_init_64.c
55
pmd_populate_kernel(&init_mm, pmd, p);
arch/x86/mm/kasan_init_64.c
58
pte = pte_offset_kernel(pmd, addr);
arch/x86/mm/kasan_init_64.c
75
pmd_t *pmd;
arch/x86/mm/kasan_init_64.c
94
pmd = pmd_offset(pud, addr);
arch/x86/mm/kasan_init_64.c
97
if (!pmd_leaf(*pmd))
arch/x86/mm/kasan_init_64.c
98
kasan_populate_pmd(pmd, addr, next, nid);
arch/x86/mm/kasan_init_64.c
99
} while (pmd++, addr = next, addr != end);
arch/x86/mm/kmmio.c
133
static void clear_pmd_presence(pmd_t *pmd, bool clear, pmdval_t *old)
arch/x86/mm/kmmio.c
136
pmdval_t v = pmd_val(*pmd);
arch/x86/mm/kmmio.c
139
new_pmd = pmd_mkinvalid(*pmd);
arch/x86/mm/kmmio.c
144
set_pmd(pmd, new_pmd);
arch/x86/mm/mem_encrypt_amd.c
160
pmdval_t pmd_flags, pmd;
arch/x86/mm/mem_encrypt_amd.c
166
pmd = map ? (paddr & PMD_MASK) + pmd_flags : 0;
arch/x86/mm/mem_encrypt_amd.c
167
__early_make_pgtable((unsigned long)vaddr, pmd);
arch/x86/mm/pat/set_memory.c
1245
static int collapse_pmd_page(pmd_t *pmd, unsigned long addr,
arch/x86/mm/pat/set_memory.c
1258
pte = pte_offset_kernel(pmd, addr);
arch/x86/mm/pat/set_memory.c
1282
old_pmd = *pmd;
arch/x86/mm/pat/set_memory.c
1288
set_pmd(pmd, _pmd);
arch/x86/mm/pat/set_memory.c
1301
pmd_t *pmd = pmd_offset(pud, addr);
arch/x86/mm/pat/set_memory.c
1303
if (WARN_ON(pmd_val(old_pmd) != pmd_val(*pmd)))
arch/x86/mm/pat/set_memory.c
1305
set_pmd(pmd, _pmd);
arch/x86/mm/pat/set_memory.c
1319
pmd_t *pmd, first;
arch/x86/mm/pat/set_memory.c
1326
pmd = pmd_offset(pud, addr);
arch/x86/mm/pat/set_memory.c
1327
first = *pmd;
arch/x86/mm/pat/set_memory.c
1341
for (i = 1, pmd++; i < PTRS_PER_PMD; i++, pmd++) {
arch/x86/mm/pat/set_memory.c
1342
pmd_t entry = *pmd;
arch/x86/mm/pat/set_memory.c
1376
pmd_t *pmd;
arch/x86/mm/pat/set_memory.c
1390
pmd = pmd_offset(pud, addr);
arch/x86/mm/pat/set_memory.c
1391
if (!pmd_present(*pmd) || pmd_leaf(*pmd))
arch/x86/mm/pat/set_memory.c
1394
collapsed = collapse_pmd_page(pmd, addr, pgtables);
arch/x86/mm/pat/set_memory.c
1415
static bool try_to_free_pmd_page(pmd_t *pmd)
arch/x86/mm/pat/set_memory.c
1420
if (!pmd_none(pmd[i]))
arch/x86/mm/pat/set_memory.c
1423
free_page((unsigned long)pmd);
arch/x86/mm/pat/set_memory.c
1427
static bool unmap_pte_range(pmd_t *pmd, unsigned long start, unsigned long end)
arch/x86/mm/pat/set_memory.c
1429
pte_t *pte = pte_offset_kernel(pmd, start);
arch/x86/mm/pat/set_memory.c
1438
if (try_to_free_pte_page((pte_t *)pmd_page_vaddr(*pmd))) {
arch/x86/mm/pat/set_memory.c
1439
pmd_clear(pmd);
arch/x86/mm/pat/set_memory.c
1445
static void __unmap_pmd_range(pud_t *pud, pmd_t *pmd,
arch/x86/mm/pat/set_memory.c
1448
if (unmap_pte_range(pmd, start, end))
arch/x86/mm/pat/set_memory.c
1455
pmd_t *pmd = pmd_offset(pud, start);
arch/x86/mm/pat/set_memory.c
1464
__unmap_pmd_range(pud, pmd, start, pre_end);
arch/x86/mm/pat/set_memory.c
1467
pmd++;
arch/x86/mm/pat/set_memory.c
1474
if (pmd_leaf(*pmd))
arch/x86/mm/pat/set_memory.c
1475
pmd_clear(pmd);
arch/x86/mm/pat/set_memory.c
1477
__unmap_pmd_range(pud, pmd, start, start + PMD_SIZE);
arch/x86/mm/pat/set_memory.c
1480
pmd++;
arch/x86/mm/pat/set_memory.c
1487
return __unmap_pmd_range(pud, pmd, start, end);
arch/x86/mm/pat/set_memory.c
1540
static int alloc_pte_page(pmd_t *pmd)
arch/x86/mm/pat/set_memory.c
1546
set_pmd(pmd, __pmd(__pa(pte) | _KERNPG_TABLE));
arch/x86/mm/pat/set_memory.c
1552
pmd_t *pmd = (pmd_t *)get_zeroed_page(GFP_KERNEL);
arch/x86/mm/pat/set_memory.c
1553
if (!pmd)
arch/x86/mm/pat/set_memory.c
1556
set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE));
arch/x86/mm/pat/set_memory.c
1562
unsigned num_pages, pmd_t *pmd, pgprot_t pgprot)
arch/x86/mm/pat/set_memory.c
1566
pte = pte_offset_kernel(pmd, start);
arch/x86/mm/pat/set_memory.c
1584
pmd_t *pmd;
arch/x86/mm/pat/set_memory.c
1601
pmd = pmd_offset(pud, start);
arch/x86/mm/pat/set_memory.c
1602
if (pmd_none(*pmd))
arch/x86/mm/pat/set_memory.c
1603
if (alloc_pte_page(pmd))
arch/x86/mm/pat/set_memory.c
1606
populate_pte(cpa, start, pre_end, cur_pages, pmd, pgprot);
arch/x86/mm/pat/set_memory.c
1628
pmd = pmd_offset(pud, start);
arch/x86/mm/pat/set_memory.c
1630
set_pmd(pmd, pmd_mkhuge(pfn_pmd(cpa->pfn,
arch/x86/mm/pat/set_memory.c
1642
pmd = pmd_offset(pud, start);
arch/x86/mm/pat/set_memory.c
1643
if (pmd_none(*pmd))
arch/x86/mm/pat/set_memory.c
1644
if (alloc_pte_page(pmd))
arch/x86/mm/pat/set_memory.c
1648
pmd, pgprot);
arch/x86/mm/pat/set_memory.c
717
pmd_t *pmd;
arch/x86/mm/pat/set_memory.c
752
pmd = pmd_offset(pud, address);
arch/x86/mm/pat/set_memory.c
753
if (pmd_none(*pmd))
arch/x86/mm/pat/set_memory.c
756
if (pmd_leaf(*pmd) || !pmd_present(*pmd))
arch/x86/mm/pat/set_memory.c
757
return (pte_t *)pmd;
arch/x86/mm/pat/set_memory.c
760
*nx |= pmd_flags(*pmd) & _PAGE_NX;
arch/x86/mm/pat/set_memory.c
761
*rw &= pmd_flags(*pmd) & _PAGE_RW;
arch/x86/mm/pat/set_memory.c
763
return pte_offset_kernel(pmd, address);
arch/x86/mm/pat/set_memory.c
893
pmd_t *pmd;
arch/x86/mm/pat/set_memory.c
898
pmd = pmd_offset(pud, address);
arch/x86/mm/pat/set_memory.c
899
set_pte_atomic((pte_t *)pmd, pte);
arch/x86/mm/pgtable.c
137
void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
arch/x86/mm/pgtable.c
139
paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
arch/x86/mm/pgtable.c
143
set_pud(pudp, __pud(__pa(pmd) | _PAGE_PRESENT));
arch/x86/mm/pgtable.c
187
pmd_t *pmd = NULL;
arch/x86/mm/pgtable.c
199
pmd = ptdesc_address(ptdesc);
arch/x86/mm/pgtable.c
202
pmds[i] = pmd;
arch/x86/mm/pgtable.c
224
pmd_t *pmd = (pmd_t *)pgd_page_vaddr(pgd);
arch/x86/mm/pgtable.c
229
pmd_free(mm, pmd);
arch/x86/mm/pgtable.c
263
pmd_t *pmd = pmds[i];
arch/x86/mm/pgtable.c
266
memcpy(pmd, (pmd_t *)pgd_page_vaddr(swapper_pg_dir[i]),
arch/x86/mm/pgtable.c
269
pud_populate(mm, pud, pmd);
arch/x86/mm/pgtable.c
28
void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)
arch/x86/mm/pgtable.c
290
pmd_t *pmd = pmds[i];
arch/x86/mm/pgtable.c
292
memcpy(pmd, (pmd_t *)pgd_page_vaddr(*s_pgd),
arch/x86/mm/pgtable.c
295
pud_populate(mm, u_pud, pmd);
arch/x86/mm/pgtable.c
30
paravirt_release_pmd(__pa(pmd) >> PAGE_SHIFT);
arch/x86/mm/pgtable.c
38
tlb_remove_ptdesc(tlb, virt_to_ptdesc(pmd));
arch/x86/mm/pgtable.c
664
int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
arch/x86/mm/pgtable.c
676
if (pmd_present(*pmd) && !pmd_leaf(*pmd))
arch/x86/mm/pgtable.c
679
set_pte((pte_t *)pmd, pfn_pte(
arch/x86/mm/pgtable.c
708
int pmd_clear_huge(pmd_t *pmd)
arch/x86/mm/pgtable.c
710
if (pmd_leaf(*pmd)) {
arch/x86/mm/pgtable.c
711
pmd_clear(pmd);
arch/x86/mm/pgtable.c
731
pmd_t *pmd, *pmd_sv;
arch/x86/mm/pgtable.c
735
pmd = pud_pgtable(*pud);
arch/x86/mm/pgtable.c
741
pmd_sv[i] = pmd[i];
arch/x86/mm/pgtable.c
742
if (!pmd_none(pmd[i]))
arch/x86/mm/pgtable.c
743
pmd_clear(&pmd[i]);
arch/x86/mm/pgtable.c
760
pmd_free(&init_mm, pmd);
arch/x86/mm/pgtable.c
773
int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
arch/x86/mm/pgtable.c
777
pt = page_ptdesc(pmd_page(*pmd));
arch/x86/mm/pgtable.c
778
pmd_clear(pmd);
arch/x86/mm/pgtable.c
794
int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
arch/x86/mm/pgtable.c
796
return pmd_none(*pmd);
arch/x86/mm/pgtable.c
812
pmd_t pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma)
arch/x86/mm/pgtable.c
815
return pmd_mkwrite_shstk(pmd);
arch/x86/mm/pgtable.c
817
pmd = pmd_mkwrite_novma(pmd);
arch/x86/mm/pgtable.c
819
return pmd_clear_saveddirty(pmd);
arch/x86/mm/pgtable.c
835
void arch_check_zapped_pmd(struct vm_area_struct *vma, pmd_t pmd)
arch/x86/mm/pgtable.c
839
pmd_shstk(pmd));
arch/x86/mm/pgtable_32.c
32
pmd_t *pmd;
arch/x86/mm/pgtable_32.c
50
pmd = pmd_offset(pud, vaddr);
arch/x86/mm/pgtable_32.c
51
if (pmd_none(*pmd)) {
arch/x86/mm/pgtable_32.c
55
pte = pte_offset_kernel(pmd, vaddr);
arch/x86/mm/pti.c
254
pmd_t *pmd;
arch/x86/mm/pti.c
257
pmd = pti_user_pagetable_walk_pmd(address);
arch/x86/mm/pti.c
258
if (!pmd)
arch/x86/mm/pti.c
262
if (pmd_leaf(*pmd)) {
arch/x86/mm/pti.c
265
set_pmd(pmd, __pmd(0));
arch/x86/mm/pti.c
272
if (pmd_none(*pmd)) {
arch/x86/mm/pti.c
277
set_pmd(pmd, __pmd(_KERNPG_TABLE | __pa(new_pte_page)));
arch/x86/mm/pti.c
280
pte = pte_offset_kernel(pmd, address);
arch/x86/mm/pti.c
326
pmd_t *pmd, *target_pmd;
arch/x86/mm/pti.c
349
pmd = pmd_offset(pud, addr);
arch/x86/mm/pti.c
350
if (pmd_none(*pmd)) {
arch/x86/mm/pti.c
356
if (pmd_leaf(*pmd) || level == PTI_CLONE_PMD) {
arch/x86/mm/pti.c
367
if (WARN_ON(!(pmd_flags(*pmd) & _PAGE_PRESENT)))
arch/x86/mm/pti.c
380
*pmd = pmd_set_flags(*pmd, _PAGE_GLOBAL);
arch/x86/mm/pti.c
387
*target_pmd = *pmd;
arch/x86/mm/pti.c
394
pte = pte_offset_kernel(pmd, addr);
arch/x86/mm/tlb.c
504
bool pmd = info->stride_shift == PMD_SHIFT;
arch/x86/mm/tlb.c
526
invlpgb_flush_user_nr_nosync(kern_pcid(asid), addr, nr, pmd);
arch/x86/mm/tlb.c
528
invlpgb_flush_user_nr_nosync(user_pcid(asid), addr, nr, pmd);
arch/x86/power/hibernate.c
159
pmd_t *pmd;
arch/x86/power/hibernate.c
181
pmd = pmd_offset(pud, relocated_restore_code);
arch/x86/power/hibernate.c
182
if (pmd_leaf(*pmd)) {
arch/x86/power/hibernate.c
183
set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_NX));
arch/x86/power/hibernate.c
186
pte = pte_offset_kernel(pmd, relocated_restore_code);
arch/x86/power/hibernate_32.c
101
for (pmd_idx = 0; pmd_idx < PTRS_PER_PMD; pmd++, pmd_idx++) {
arch/x86/power/hibernate_32.c
110
set_pmd(pmd, pfn_pmd(pfn, PAGE_KERNEL_LARGE_EXEC));
arch/x86/power/hibernate_32.c
115
pte = resume_one_page_table_init(pmd);
arch/x86/power/hibernate_32.c
148
pmd_t *pmd;
arch/x86/power/hibernate_32.c
153
pmd = resume_one_md_table_init(pgd);
arch/x86/power/hibernate_32.c
154
if (!pmd)
arch/x86/power/hibernate_32.c
158
set_pmd(pmd + pmd_index(restore_jump_address),
arch/x86/power/hibernate_32.c
161
pte = resume_one_page_table_init(pmd);
arch/x86/power/hibernate_32.c
59
static pte_t *resume_one_page_table_init(pmd_t *pmd)
arch/x86/power/hibernate_32.c
61
if (pmd_none(*pmd)) {
arch/x86/power/hibernate_32.c
66
set_pmd(pmd, __pmd(__pa(page_table) | _PAGE_TABLE));
arch/x86/power/hibernate_32.c
68
BUG_ON(page_table != pte_offset_kernel(pmd, 0));
arch/x86/power/hibernate_32.c
73
return pte_offset_kernel(pmd, 0);
arch/x86/power/hibernate_32.c
85
pmd_t *pmd;
arch/x86/power/hibernate_32.c
94
pmd = resume_one_md_table_init(pgd);
arch/x86/power/hibernate_32.c
95
if (!pmd)
arch/x86/power/hibernate_64.c
30
pmd_t *pmd;
arch/x86/power/hibernate_64.c
64
pmd = (pmd_t *)get_safe_page(GFP_ATOMIC);
arch/x86/power/hibernate_64.c
65
if (!pmd)
arch/x86/power/hibernate_64.c
68
set_pmd(pmd + pmd_index(restore_jump_address),
arch/x86/power/hibernate_64.c
71
__pud(__pa(pmd) | pgprot_val(pgtable_prot)));
arch/x86/xen/mmu_pv.c
1071
pmd_t *pmd = level2_kernel_pgt + pmd_index(vaddr);
arch/x86/xen/mmu_pv.c
1075
for (; vaddr <= vaddr_end && (pmd < (level2_kernel_pgt + PTRS_PER_PMD));
arch/x86/xen/mmu_pv.c
1076
pmd++, vaddr += PMD_SIZE) {
arch/x86/xen/mmu_pv.c
1077
if (pmd_none(*pmd))
arch/x86/xen/mmu_pv.c
1080
set_pmd(pmd, __pmd(0));
arch/x86/xen/mmu_pv.c
1112
static void __init xen_cleanmfnmap_pmd(pmd_t *pmd, bool unpin)
arch/x86/xen/mmu_pv.c
1118
if (pmd_leaf(*pmd)) {
arch/x86/xen/mmu_pv.c
1119
pa = pmd_val(*pmd) & PHYSICAL_PAGE_MASK;
arch/x86/xen/mmu_pv.c
1124
pte_tbl = pte_offset_kernel(pmd, 0);
arch/x86/xen/mmu_pv.c
1131
set_pmd(pmd, __pmd(0));
arch/x86/xen/mmu_pv.c
1914
pmd_t pmd;
arch/x86/xen/mmu_pv.c
1932
pmd = native_make_pmd(xen_read_phys_ulong(pa + pmd_index(vaddr) *
arch/x86/xen/mmu_pv.c
1933
sizeof(pmd)));
arch/x86/xen/mmu_pv.c
1934
if (!pmd_present(pmd))
arch/x86/xen/mmu_pv.c
1936
pa = pmd_val(pmd) & PTE_PFN_MASK;
arch/x86/xen/mmu_pv.c
1937
if (pmd_leaf(pmd))
arch/x86/xen/mmu_pv.c
1959
pmd_t *pmd;
arch/x86/xen/mmu_pv.c
1997
pmd = early_memremap(pmd_phys, PAGE_SIZE);
arch/x86/xen/mmu_pv.c
1998
clear_page(pmd);
arch/x86/xen/mmu_pv.c
2015
pmd[idx_pt] = __pmd(_PAGE_TABLE | pt_phys);
arch/x86/xen/mmu_pv.c
2019
early_memunmap(pmd, PAGE_SIZE);
arch/x86/xen/mmu_pv.c
450
__visible pmdval_t xen_pmd_val(pmd_t pmd)
arch/x86/xen/mmu_pv.c
452
return pte_mfn_to_pfn(pmd.pmd);
arch/x86/xen/mmu_pv.c
488
__visible pmd_t xen_make_pmd(pmdval_t pmd)
arch/x86/xen/mmu_pv.c
490
pmd = pte_pfn_to_mfn(pmd);
arch/x86/xen/mmu_pv.c
491
return native_make_pmd(pmd);
arch/x86/xen/mmu_pv.c
601
static void xen_pmd_walk(struct mm_struct *mm, pmd_t *pmd,
arch/x86/xen/mmu_pv.c
610
if (!pmd_none(pmd[i]))
arch/x86/xen/mmu_pv.c
611
(*func)(mm, pmd_page(pmd[i]), PT_PTE);
arch/x86/xen/mmu_pv.c
624
pmd_t *pmd;
arch/x86/xen/mmu_pv.c
629
pmd = pmd_offset(&pud[i], 0);
arch/x86/xen/mmu_pv.c
631
(*func)(mm, virt_to_page(pmd), PT_PMD);
arch/x86/xen/mmu_pv.c
632
xen_pmd_walk(mm, pmd, func, last && i == nr - 1, limit);
arch/x86/xen/mmu_pv.c
93
pmdval_t xen_pmd_val(pmd_t pmd);
arch/x86/xen/mmu_pv.c
98
pmd_t xen_make_pmd(pmdval_t pmd);
arch/xtensa/include/asm/pgtable.h
227
#define pmd_page_vaddr(pmd) ((unsigned long)(pmd_val(pmd) & PAGE_MASK))
arch/xtensa/include/asm/pgtable.h
228
#define pmd_pfn(pmd) (__pa(pmd_val(pmd)) >> PAGE_SHIFT)
arch/xtensa/include/asm/pgtable.h
229
#define pmd_page(pmd) virt_to_page(pmd_val(pmd))
arch/xtensa/include/asm/pgtable.h
245
#define pmd_none(pmd) (!pmd_val(pmd))
arch/xtensa/include/asm/pgtable.h
246
#define pmd_present(pmd) (pmd_val(pmd) & PAGE_MASK)
arch/xtensa/include/asm/pgtable.h
247
#define pmd_bad(pmd) (pmd_val(pmd) & ~PAGE_MASK)
arch/xtensa/include/asm/pgtable.h
391
#define _PTE_OFFSET(pmd,adr,tmp) _PTE_INDEX(tmp, adr); \
arch/xtensa/include/asm/pgtable.h
392
srli pmd, pmd, PAGE_SHIFT; \
arch/xtensa/include/asm/pgtable.h
393
slli pmd, pmd, PAGE_SHIFT; \
arch/xtensa/include/asm/pgtable.h
394
addx4 pmd, tmp, pmd
arch/xtensa/mm/fault.c
38
pmd_t *pmd, *pmd_k;
arch/xtensa/mm/fault.c
62
pmd = pmd_offset(pud, address);
arch/xtensa/mm/fault.c
64
if (!pmd_present(*pmd) || !pmd_present(*pmd_k))
arch/xtensa/mm/fault.c
67
pmd_val(*pmd) = pmd_val(*pmd_k);
arch/xtensa/mm/kasan_init.c
21
pmd_t *pmd = pmd_off_k(vaddr);
arch/xtensa/mm/kasan_init.c
29
for (vaddr = 0; vaddr < KASAN_SHADOW_SIZE; vaddr += PMD_SIZE, ++pmd) {
arch/xtensa/mm/kasan_init.c
30
BUG_ON(!pmd_none(*pmd));
arch/xtensa/mm/kasan_init.c
31
set_pmd(pmd, __pmd((unsigned long)kasan_early_shadow_pte));
arch/xtensa/mm/kasan_init.c
41
pmd_t *pmd = pmd_off_k(vaddr);
arch/xtensa/mm/kasan_init.c
63
set_pmd(pmd + i, __pmd((unsigned long)pte));
arch/xtensa/mm/mmu.c
26
pmd_t *pmd = pmd_off_k(vaddr);
arch/xtensa/mm/mmu.c
43
for (i = 0; i < n_pages; i += PTRS_PER_PTE, ++pmd) {
arch/xtensa/mm/mmu.c
46
BUG_ON(!pmd_none(*pmd));
arch/xtensa/mm/mmu.c
47
set_pmd(pmd, __pmd(((unsigned long)cur_pte) & PAGE_MASK));
arch/xtensa/mm/mmu.c
48
BUG_ON(cur_pte != pte_offset_kernel(pmd, 0));
arch/xtensa/mm/mmu.c
50
__func__, pmd, cur_pte);
arch/xtensa/mm/tlb.c
181
pmd_t *pmd;
arch/xtensa/mm/tlb.c
196
pmd = pmd_offset(pud, vaddr);
arch/xtensa/mm/tlb.c
197
if (pmd_none_or_clear_bad(pmd))
arch/xtensa/mm/tlb.c
199
pte = pte_offset_map(pmd, vaddr);
drivers/edac/xgene_edac.c
1813
struct xgene_edac_pmd_ctx *pmd;
drivers/edac/xgene_edac.c
1829
list_for_each_entry(pmd, &ctx->pmds, next) {
drivers/edac/xgene_edac.c
1830
if ((PMD0_MERR_MASK << pmd->pmd) & pcp_hp_stat)
drivers/edac/xgene_edac.c
1831
xgene_edac_pmd_check(pmd->edac_dev);
drivers/edac/xgene_edac.c
1967
struct xgene_edac_pmd_ctx *pmd;
drivers/edac/xgene_edac.c
1975
list_for_each_entry_safe(pmd, temp_pmd, &edac->pmds, next)
drivers/edac/xgene_edac.c
1976
xgene_edac_pmd_remove(pmd);
drivers/edac/xgene_edac.c
516
u32 pmd;
drivers/edac/xgene_edac.c
534
ctx->pmd * MAX_CPU_PER_PMD + cpu_idx, val,
drivers/edac/xgene_edac.c
574
ctx->pmd * MAX_CPU_PER_PMD + cpu_idx, val,
drivers/edac/xgene_edac.c
618
ctx->pmd * MAX_CPU_PER_PMD + cpu_idx, val,
drivers/edac/xgene_edac.c
678
ctx->pmd, val, val_hi, val_lo);
drivers/edac/xgene_edac.c
730
ctx->pmd, val, val_hi, val_lo);
drivers/edac/xgene_edac.c
742
if (!((PMD0_MERR_MASK << ctx->pmd) & pcp_hp_stat))
drivers/edac/xgene_edac.c
792
PMD0_MERR_MASK << ctx->pmd);
drivers/edac/xgene_edac.c
795
PMD0_MERR_MASK << ctx->pmd);
drivers/edac/xgene_edac.c
871
snprintf(name, sizeof(name), "PMD%d", ctx->pmd);
drivers/edac/xgene_edac.c
882
static int xgene_edac_pmd_available(u32 efuse, int pmd)
drivers/edac/xgene_edac.c
884
return (efuse & (1 << pmd)) ? 0 : 1;
drivers/edac/xgene_edac.c
894
u32 pmd;
drivers/edac/xgene_edac.c
902
if (of_property_read_u32(np, "pmd-controller", &pmd)) {
drivers/edac/xgene_edac.c
910
if (!xgene_edac_pmd_available(val, pmd)) {
drivers/edac/xgene_edac.c
915
snprintf(edac_name, sizeof(edac_name), "l2c%d", pmd);
drivers/edac/xgene_edac.c
926
ctx->pmd = pmd;
drivers/edac/xgene_edac.c
970
dev_info(edac->dev, "X-Gene EDAC PMD%d registered\n", ctx->pmd);
drivers/edac/xgene_edac.c
980
static int xgene_edac_pmd_remove(struct xgene_edac_pmd_ctx *pmd)
drivers/edac/xgene_edac.c
982
struct edac_device_ctl_info *edac_dev = pmd->edac_dev;
drivers/md/dm-thin-metadata.c
1000
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1001
list_for_each_entry_safe(td, tmp, &pmd->thin_devices, list) {
drivers/md/dm-thin-metadata.c
1009
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1017
pmd_write_lock_in_core(pmd);
drivers/md/dm-thin-metadata.c
1018
if (!pmd->fail_io && !dm_bm_is_read_only(pmd->bm)) {
drivers/md/dm-thin-metadata.c
1019
r = __commit_transaction(pmd);
drivers/md/dm-thin-metadata.c
1024
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1025
__destroy_persistent_data_objects(pmd, true);
drivers/md/dm-thin-metadata.c
1027
kfree(pmd);
drivers/md/dm-thin-metadata.c
1036
static int __open_device(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
1048
list_for_each_entry(td2, &pmd->thin_devices, list)
drivers/md/dm-thin-metadata.c
1064
r = dm_btree_lookup(&pmd->details_info, pmd->details_root,
drivers/md/dm-thin-metadata.c
1075
details_le.transaction_id = cpu_to_le64(pmd->trans_id);
drivers/md/dm-thin-metadata.c
1076
details_le.creation_time = cpu_to_le32(pmd->time);
drivers/md/dm-thin-metadata.c
1077
details_le.snapshotted_time = cpu_to_le32(pmd->time);
drivers/md/dm-thin-metadata.c
1084
(*td)->pmd = pmd;
drivers/md/dm-thin-metadata.c
1094
list_add(&(*td)->list, &pmd->thin_devices);
drivers/md/dm-thin-metadata.c
1104
static int __create_thin(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
1113
r = dm_btree_lookup(&pmd->details_info, pmd->details_root,
drivers/md/dm-thin-metadata.c
1121
r = dm_btree_empty(&pmd->bl_info, &dev_root);
drivers/md/dm-thin-metadata.c
1130
r = dm_btree_insert(&pmd->tl_info, pmd->root, &key, &value, &pmd->root);
drivers/md/dm-thin-metadata.c
1132
dm_btree_del(&pmd->bl_info, dev_root);
drivers/md/dm-thin-metadata.c
1136
r = __open_device(pmd, dev, 1, &td);
drivers/md/dm-thin-metadata.c
1138
dm_btree_remove(&pmd->tl_info, pmd->root, &key, &pmd->root);
drivers/md/dm-thin-metadata.c
1139
dm_btree_del(&pmd->bl_info, dev_root);
drivers/md/dm-thin-metadata.c
1147
int dm_pool_create_thin(struct dm_pool_metadata *pmd, dm_thin_id dev)
drivers/md/dm-thin-metadata.c
1151
pmd_write_lock(pmd);
drivers/md/dm-thin-metadata.c
1152
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1153
r = __create_thin(pmd, dev);
drivers/md/dm-thin-metadata.c
1154
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1159
static int __set_snapshot_details(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
1166
r = __open_device(pmd, origin, 0, &td);
drivers/md/dm-thin-metadata.c
1180
static int __create_snap(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
1190
r = dm_btree_lookup(&pmd->details_info, pmd->details_root,
drivers/md/dm-thin-metadata.c
1196
r = dm_btree_lookup(&pmd->tl_info, pmd->root, &key, &value);
drivers/md/dm-thin-metadata.c
1202
dm_tm_inc(pmd->tm, origin_root);
drivers/md/dm-thin-metadata.c
1208
r = dm_btree_insert(&pmd->tl_info, pmd->root, &key, &value, &pmd->root);
drivers/md/dm-thin-metadata.c
1210
dm_tm_dec(pmd->tm, origin_root);
drivers/md/dm-thin-metadata.c
1214
pmd->time++;
drivers/md/dm-thin-metadata.c
1216
r = __open_device(pmd, dev, 1, &td);
drivers/md/dm-thin-metadata.c
1220
r = __set_snapshot_details(pmd, td, origin, pmd->time);
drivers/md/dm-thin-metadata.c
1229
dm_btree_remove(&pmd->tl_info, pmd->root, &key, &pmd->root);
drivers/md/dm-thin-metadata.c
1230
dm_btree_remove(&pmd->details_info, pmd->details_root,
drivers/md/dm-thin-metadata.c
1231
&key, &pmd->details_root);
drivers/md/dm-thin-metadata.c
1235
int dm_pool_create_snap(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
1241
pmd_write_lock(pmd);
drivers/md/dm-thin-metadata.c
1242
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1243
r = __create_snap(pmd, dev, origin);
drivers/md/dm-thin-metadata.c
1244
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1249
static int __delete_device(struct dm_pool_metadata *pmd, dm_thin_id dev)
drivers/md/dm-thin-metadata.c
1256
r = __open_device(pmd, dev, 0, &td);
drivers/md/dm-thin-metadata.c
1267
r = dm_btree_remove(&pmd->details_info, pmd->details_root,
drivers/md/dm-thin-metadata.c
1268
&key, &pmd->details_root);
drivers/md/dm-thin-metadata.c
1272
r = dm_btree_remove(&pmd->tl_info, pmd->root, &key, &pmd->root);
drivers/md/dm-thin-metadata.c
1279
int dm_pool_delete_thin_device(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
1284
pmd_write_lock(pmd);
drivers/md/dm-thin-metadata.c
1285
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1286
r = __delete_device(pmd, dev);
drivers/md/dm-thin-metadata.c
1287
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1292
int dm_pool_set_metadata_transaction_id(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
1298
pmd_write_lock(pmd);
drivers/md/dm-thin-metadata.c
1300
if (pmd->fail_io)
drivers/md/dm-thin-metadata.c
1303
if (pmd->trans_id != current_id) {
drivers/md/dm-thin-metadata.c
1308
pmd->trans_id = new_id;
drivers/md/dm-thin-metadata.c
1312
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1317
int dm_pool_get_metadata_transaction_id(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
1322
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1323
if (!pmd->fail_io) {
drivers/md/dm-thin-metadata.c
1324
*result = pmd->trans_id;
drivers/md/dm-thin-metadata.c
1327
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1332
static int __reserve_metadata_snap(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
1343
r = __commit_transaction(pmd);
drivers/md/dm-thin-metadata.c
1353
dm_sm_inc_block(pmd->metadata_sm, THIN_SUPERBLOCK_LOCATION);
drivers/md/dm-thin-metadata.c
1354
r = dm_tm_shadow_block(pmd->tm, THIN_SUPERBLOCK_LOCATION,
drivers/md/dm-thin-metadata.c
1367
dm_tm_dec(pmd->tm, held_root);
drivers/md/dm-thin-metadata.c
1368
dm_tm_unlock(pmd->tm, copy);
drivers/md/dm-thin-metadata.c
1383
dm_tm_inc(pmd->tm, le64_to_cpu(disk_super->data_mapping_root));
drivers/md/dm-thin-metadata.c
1384
dm_tm_inc(pmd->tm, le64_to_cpu(disk_super->device_details_root));
drivers/md/dm-thin-metadata.c
1385
dm_tm_unlock(pmd->tm, copy);
drivers/md/dm-thin-metadata.c
1390
r = superblock_lock(pmd, &sblock);
drivers/md/dm-thin-metadata.c
1392
dm_tm_dec(pmd->tm, held_root);
drivers/md/dm-thin-metadata.c
1402
int dm_pool_reserve_metadata_snap(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
1406
pmd_write_lock(pmd);
drivers/md/dm-thin-metadata.c
1407
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1408
r = __reserve_metadata_snap(pmd);
drivers/md/dm-thin-metadata.c
1409
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1414
static int __release_metadata_snap(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
1421
r = superblock_lock(pmd, &sblock);
drivers/md/dm-thin-metadata.c
1436
r = dm_tm_read_lock(pmd->tm, held_root, &sb_validator, &copy);
drivers/md/dm-thin-metadata.c
1441
dm_btree_del(&pmd->info, le64_to_cpu(disk_super->data_mapping_root));
drivers/md/dm-thin-metadata.c
1442
dm_btree_del(&pmd->details_info, le64_to_cpu(disk_super->device_details_root));
drivers/md/dm-thin-metadata.c
1443
dm_sm_dec_block(pmd->metadata_sm, held_root);
drivers/md/dm-thin-metadata.c
1445
dm_tm_unlock(pmd->tm, copy);
drivers/md/dm-thin-metadata.c
1450
int dm_pool_release_metadata_snap(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
1454
pmd_write_lock(pmd);
drivers/md/dm-thin-metadata.c
1455
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1456
r = __release_metadata_snap(pmd);
drivers/md/dm-thin-metadata.c
1457
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1462
static int __get_metadata_snap(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
1469
r = dm_bm_read_lock(pmd->bm, THIN_SUPERBLOCK_LOCATION,
drivers/md/dm-thin-metadata.c
1482
int dm_pool_get_metadata_snap(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
1487
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1488
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1489
r = __get_metadata_snap(pmd, result);
drivers/md/dm-thin-metadata.c
1490
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1495
int dm_pool_open_thin_device(struct dm_pool_metadata *pmd, dm_thin_id dev,
drivers/md/dm-thin-metadata.c
1500
pmd_write_lock_in_core(pmd);
drivers/md/dm-thin-metadata.c
1501
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1502
r = __open_device(pmd, dev, 0, td);
drivers/md/dm-thin-metadata.c
1503
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1510
pmd_write_lock_in_core(td->pmd);
drivers/md/dm-thin-metadata.c
1512
pmd_write_unlock(td->pmd);
drivers/md/dm-thin-metadata.c
1551
struct dm_pool_metadata *pmd = td->pmd;
drivers/md/dm-thin-metadata.c
1556
info = &pmd->info;
drivers/md/dm-thin-metadata.c
1558
info = &pmd->nb_info;
drivers/md/dm-thin-metadata.c
1560
r = dm_btree_lookup(info, pmd->root, keys, &value);
drivers/md/dm-thin-metadata.c
1571
struct dm_pool_metadata *pmd = td->pmd;
drivers/md/dm-thin-metadata.c
1573
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1574
if (pmd->fail_io) {
drivers/md/dm-thin-metadata.c
1575
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1581
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1591
struct dm_pool_metadata *pmd = td->pmd;
drivers/md/dm-thin-metadata.c
1594
r = dm_btree_lookup_next(&pmd->info, pmd->root, keys, vblock, &value);
drivers/md/dm-thin-metadata.c
1653
struct dm_pool_metadata *pmd = td->pmd;
drivers/md/dm-thin-metadata.c
1655
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1656
if (!pmd->fail_io) {
drivers/md/dm-thin-metadata.c
1660
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1670
struct dm_pool_metadata *pmd = td->pmd;
drivers/md/dm-thin-metadata.c
1673
value = cpu_to_le64(pack_block_time(data_block, pmd->time));
drivers/md/dm-thin-metadata.c
1676
r = dm_btree_insert_notify(&pmd->info, pmd->root, keys, &value,
drivers/md/dm-thin-metadata.c
1677
&pmd->root, &inserted);
drivers/md/dm-thin-metadata.c
1693
pmd_write_lock(td->pmd);
drivers/md/dm-thin-metadata.c
1694
if (!td->pmd->fail_io)
drivers/md/dm-thin-metadata.c
1696
pmd_write_unlock(td->pmd);
drivers/md/dm-thin-metadata.c
1705
struct dm_pool_metadata *pmd = td->pmd;
drivers/md/dm-thin-metadata.c
1713
r = dm_btree_lookup(&pmd->tl_info, pmd->root, keys, &value);
drivers/md/dm-thin-metadata.c
1722
dm_tm_inc(pmd->tm, mapping_root);
drivers/md/dm-thin-metadata.c
1723
r = dm_btree_remove(&pmd->tl_info, pmd->root, keys, &pmd->root);
drivers/md/dm-thin-metadata.c
1732
r = dm_btree_lookup_next(&pmd->bl_info, mapping_root, &begin, &begin, &value);
drivers/md/dm-thin-metadata.c
1742
r = dm_btree_remove_leaves(&pmd->bl_info, mapping_root, &begin, end, &mapping_root, &count);
drivers/md/dm-thin-metadata.c
1757
return dm_btree_insert(&pmd->tl_info, pmd->root, keys, &value, &pmd->root);
drivers/md/dm-thin-metadata.c
1765
pmd_write_lock(td->pmd);
drivers/md/dm-thin-metadata.c
1766
if (!td->pmd->fail_io)
drivers/md/dm-thin-metadata.c
1768
pmd_write_unlock(td->pmd);
drivers/md/dm-thin-metadata.c
1773
int dm_pool_block_is_shared(struct dm_pool_metadata *pmd, dm_block_t b, bool *result)
drivers/md/dm-thin-metadata.c
1778
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1779
if (!pmd->fail_io) {
drivers/md/dm-thin-metadata.c
1780
r = dm_sm_get_count(pmd->data_sm, b, &ref_count);
drivers/md/dm-thin-metadata.c
1784
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1789
int dm_pool_inc_data_range(struct dm_pool_metadata *pmd, dm_block_t b, dm_block_t e)
drivers/md/dm-thin-metadata.c
1793
pmd_write_lock(pmd);
drivers/md/dm-thin-metadata.c
1794
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1795
r = dm_sm_inc_blocks(pmd->data_sm, b, e);
drivers/md/dm-thin-metadata.c
1796
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1801
int dm_pool_dec_data_range(struct dm_pool_metadata *pmd, dm_block_t b, dm_block_t e)
drivers/md/dm-thin-metadata.c
1805
pmd_write_lock(pmd);
drivers/md/dm-thin-metadata.c
1806
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1807
r = dm_sm_dec_blocks(pmd->data_sm, b, e);
drivers/md/dm-thin-metadata.c
1808
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1817
down_read(&td->pmd->root_lock);
drivers/md/dm-thin-metadata.c
1819
up_read(&td->pmd->root_lock);
drivers/md/dm-thin-metadata.c
1824
bool dm_pool_changed_this_transaction(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
1829
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1830
list_for_each_entry_safe(td, tmp, &pmd->thin_devices, list) {
drivers/md/dm-thin-metadata.c
1836
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1845
down_read(&td->pmd->root_lock);
drivers/md/dm-thin-metadata.c
1847
up_read(&td->pmd->root_lock);
drivers/md/dm-thin-metadata.c
1852
int dm_pool_alloc_data_block(struct dm_pool_metadata *pmd, dm_block_t *result)
drivers/md/dm-thin-metadata.c
1856
pmd_write_lock(pmd);
drivers/md/dm-thin-metadata.c
1857
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1858
r = dm_sm_new_block(pmd->data_sm, result);
drivers/md/dm-thin-metadata.c
1859
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1864
int dm_pool_commit_metadata(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
1872
pmd_write_lock_in_core(pmd);
drivers/md/dm-thin-metadata.c
1873
if (pmd->fail_io)
drivers/md/dm-thin-metadata.c
1876
r = __commit_transaction(pmd);
drivers/md/dm-thin-metadata.c
1883
r = __begin_transaction(pmd);
drivers/md/dm-thin-metadata.c
1885
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1889
static void __set_abort_with_changes_flags(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
1893
list_for_each_entry(td, &pmd->thin_devices, list)
drivers/md/dm-thin-metadata.c
1897
int dm_pool_abort_metadata(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
1902
if (unlikely(pmd->fail_io))
drivers/md/dm-thin-metadata.c
1905
pmd_write_lock(pmd);
drivers/md/dm-thin-metadata.c
1906
if (pmd->fail_io) {
drivers/md/dm-thin-metadata.c
1907
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1910
__set_abort_with_changes_flags(pmd);
drivers/md/dm-thin-metadata.c
1913
__destroy_persistent_data_objects(pmd, false);
drivers/md/dm-thin-metadata.c
1916
dm_block_manager_reset(pmd->bm);
drivers/md/dm-thin-metadata.c
1919
r = __open_or_format_metadata(pmd, false);
drivers/md/dm-thin-metadata.c
1921
pmd->fail_io = true;
drivers/md/dm-thin-metadata.c
1922
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
1926
int dm_pool_get_free_block_count(struct dm_pool_metadata *pmd, dm_block_t *result)
drivers/md/dm-thin-metadata.c
1930
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1931
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1932
r = dm_sm_get_nr_free(pmd->data_sm, result);
drivers/md/dm-thin-metadata.c
1933
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1938
int dm_pool_get_free_metadata_block_count(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
1943
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1944
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1945
r = dm_sm_get_nr_free(pmd->metadata_sm, result);
drivers/md/dm-thin-metadata.c
1948
if (*result < pmd->metadata_reserve)
drivers/md/dm-thin-metadata.c
1951
*result -= pmd->metadata_reserve;
drivers/md/dm-thin-metadata.c
1953
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1958
int dm_pool_get_metadata_dev_size(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
1963
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1964
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1965
r = dm_sm_get_nr_blocks(pmd->metadata_sm, result);
drivers/md/dm-thin-metadata.c
1966
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1971
int dm_pool_get_data_dev_size(struct dm_pool_metadata *pmd, dm_block_t *result)
drivers/md/dm-thin-metadata.c
1975
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1976
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
1977
r = dm_sm_get_nr_blocks(pmd->data_sm, result);
drivers/md/dm-thin-metadata.c
1978
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1986
struct dm_pool_metadata *pmd = td->pmd;
drivers/md/dm-thin-metadata.c
1988
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
1989
if (!pmd->fail_io) {
drivers/md/dm-thin-metadata.c
1993
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
2003
struct dm_pool_metadata *pmd = td->pmd;
drivers/md/dm-thin-metadata.c
2005
r = dm_btree_lookup(&pmd->tl_info, pmd->root, &td->id, &value_le);
drivers/md/dm-thin-metadata.c
2011
return dm_btree_find_highest_key(&pmd->bl_info, thin_root, result);
drivers/md/dm-thin-metadata.c
2018
struct dm_pool_metadata *pmd = td->pmd;
drivers/md/dm-thin-metadata.c
2020
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
2021
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
2023
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
2048
int dm_pool_resize_data_dev(struct dm_pool_metadata *pmd, dm_block_t new_count)
drivers/md/dm-thin-metadata.c
2052
pmd_write_lock(pmd);
drivers/md/dm-thin-metadata.c
2053
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
2054
r = __resize_space_map(pmd->data_sm, new_count);
drivers/md/dm-thin-metadata.c
2055
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
2060
int dm_pool_resize_metadata_dev(struct dm_pool_metadata *pmd, dm_block_t new_count)
drivers/md/dm-thin-metadata.c
2064
pmd_write_lock(pmd);
drivers/md/dm-thin-metadata.c
2065
if (!pmd->fail_io) {
drivers/md/dm-thin-metadata.c
2066
r = __resize_space_map(pmd->metadata_sm, new_count);
drivers/md/dm-thin-metadata.c
2068
__set_metadata_reserve(pmd);
drivers/md/dm-thin-metadata.c
2070
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
2075
void dm_pool_metadata_read_only(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
2077
pmd_write_lock_in_core(pmd);
drivers/md/dm-thin-metadata.c
2078
dm_bm_set_read_only(pmd->bm);
drivers/md/dm-thin-metadata.c
2079
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
2082
void dm_pool_metadata_read_write(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
2084
pmd_write_lock_in_core(pmd);
drivers/md/dm-thin-metadata.c
2085
dm_bm_set_read_write(pmd->bm);
drivers/md/dm-thin-metadata.c
2086
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
2089
int dm_pool_register_metadata_threshold(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
2096
pmd_write_lock_in_core(pmd);
drivers/md/dm-thin-metadata.c
2097
if (!pmd->fail_io) {
drivers/md/dm-thin-metadata.c
2098
r = dm_sm_register_threshold_callback(pmd->metadata_sm,
drivers/md/dm-thin-metadata.c
2101
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
2106
void dm_pool_register_pre_commit_callback(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
2110
pmd_write_lock_in_core(pmd);
drivers/md/dm-thin-metadata.c
2111
pmd->pre_commit_fn = fn;
drivers/md/dm-thin-metadata.c
2112
pmd->pre_commit_context = context;
drivers/md/dm-thin-metadata.c
2113
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
2116
int dm_pool_metadata_set_needs_check(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
2122
pmd_write_lock(pmd);
drivers/md/dm-thin-metadata.c
2123
if (pmd->fail_io)
drivers/md/dm-thin-metadata.c
2126
pmd->flags |= THIN_METADATA_NEEDS_CHECK_FLAG;
drivers/md/dm-thin-metadata.c
2128
r = superblock_lock(pmd, &sblock);
drivers/md/dm-thin-metadata.c
2135
disk_super->flags = cpu_to_le32(pmd->flags);
drivers/md/dm-thin-metadata.c
2139
pmd_write_unlock(pmd);
drivers/md/dm-thin-metadata.c
2143
bool dm_pool_metadata_needs_check(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
2147
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
2148
needs_check = pmd->flags & THIN_METADATA_NEEDS_CHECK_FLAG;
drivers/md/dm-thin-metadata.c
2149
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
2154
void dm_pool_issue_prefetches(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
2156
down_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
2157
if (!pmd->fail_io)
drivers/md/dm-thin-metadata.c
2158
dm_tm_issue_prefetches(pmd->tm);
drivers/md/dm-thin-metadata.c
2159
up_read(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
233
struct dm_pool_metadata *pmd;
drivers/md/dm-thin-metadata.c
419
static inline void pmd_write_lock_in_core(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
420
__acquires(pmd->root_lock)
drivers/md/dm-thin-metadata.c
422
down_write(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
425
static inline void pmd_write_lock(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
427
pmd_write_lock_in_core(pmd);
drivers/md/dm-thin-metadata.c
428
if (unlikely(!pmd->in_service))
drivers/md/dm-thin-metadata.c
429
pmd->in_service = true;
drivers/md/dm-thin-metadata.c
432
static inline void pmd_write_unlock(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
433
__releases(pmd->root_lock)
drivers/md/dm-thin-metadata.c
435
up_write(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
440
static int superblock_lock_zero(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
443
return dm_bm_write_lock_zero(pmd->bm, THIN_SUPERBLOCK_LOCATION,
drivers/md/dm-thin-metadata.c
447
static int superblock_lock(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
450
return dm_bm_write_lock(pmd->bm, THIN_SUPERBLOCK_LOCATION,
drivers/md/dm-thin-metadata.c
483
static void __setup_btree_details(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
485
pmd->info.tm = pmd->tm;
drivers/md/dm-thin-metadata.c
486
pmd->info.levels = 2;
drivers/md/dm-thin-metadata.c
487
pmd->info.value_type.context = pmd->data_sm;
drivers/md/dm-thin-metadata.c
488
pmd->info.value_type.size = sizeof(__le64);
drivers/md/dm-thin-metadata.c
489
pmd->info.value_type.inc = data_block_inc;
drivers/md/dm-thin-metadata.c
490
pmd->info.value_type.dec = data_block_dec;
drivers/md/dm-thin-metadata.c
491
pmd->info.value_type.equal = data_block_equal;
drivers/md/dm-thin-metadata.c
493
memcpy(&pmd->nb_info, &pmd->info, sizeof(pmd->nb_info));
drivers/md/dm-thin-metadata.c
494
pmd->nb_info.tm = pmd->nb_tm;
drivers/md/dm-thin-metadata.c
496
pmd->tl_info.tm = pmd->tm;
drivers/md/dm-thin-metadata.c
497
pmd->tl_info.levels = 1;
drivers/md/dm-thin-metadata.c
498
pmd->tl_info.value_type.context = &pmd->bl_info;
drivers/md/dm-thin-metadata.c
499
pmd->tl_info.value_type.size = sizeof(__le64);
drivers/md/dm-thin-metadata.c
500
pmd->tl_info.value_type.inc = subtree_inc;
drivers/md/dm-thin-metadata.c
501
pmd->tl_info.value_type.dec = subtree_dec;
drivers/md/dm-thin-metadata.c
502
pmd->tl_info.value_type.equal = subtree_equal;
drivers/md/dm-thin-metadata.c
504
pmd->bl_info.tm = pmd->tm;
drivers/md/dm-thin-metadata.c
505
pmd->bl_info.levels = 1;
drivers/md/dm-thin-metadata.c
506
pmd->bl_info.value_type.context = pmd->data_sm;
drivers/md/dm-thin-metadata.c
507
pmd->bl_info.value_type.size = sizeof(__le64);
drivers/md/dm-thin-metadata.c
508
pmd->bl_info.value_type.inc = data_block_inc;
drivers/md/dm-thin-metadata.c
509
pmd->bl_info.value_type.dec = data_block_dec;
drivers/md/dm-thin-metadata.c
510
pmd->bl_info.value_type.equal = data_block_equal;
drivers/md/dm-thin-metadata.c
512
pmd->details_info.tm = pmd->tm;
drivers/md/dm-thin-metadata.c
513
pmd->details_info.levels = 1;
drivers/md/dm-thin-metadata.c
514
pmd->details_info.value_type.context = NULL;
drivers/md/dm-thin-metadata.c
515
pmd->details_info.value_type.size = sizeof(struct disk_device_details);
drivers/md/dm-thin-metadata.c
516
pmd->details_info.value_type.inc = NULL;
drivers/md/dm-thin-metadata.c
517
pmd->details_info.value_type.dec = NULL;
drivers/md/dm-thin-metadata.c
518
pmd->details_info.value_type.equal = NULL;
drivers/md/dm-thin-metadata.c
521
static int save_sm_roots(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
526
r = dm_sm_root_size(pmd->metadata_sm, &len);
drivers/md/dm-thin-metadata.c
530
r = dm_sm_copy_root(pmd->metadata_sm, &pmd->metadata_space_map_root, len);
drivers/md/dm-thin-metadata.c
534
r = dm_sm_root_size(pmd->data_sm, &len);
drivers/md/dm-thin-metadata.c
538
return dm_sm_copy_root(pmd->data_sm, &pmd->data_space_map_root, len);
drivers/md/dm-thin-metadata.c
541
static void copy_sm_roots(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
545
&pmd->metadata_space_map_root,
drivers/md/dm-thin-metadata.c
546
sizeof(pmd->metadata_space_map_root));
drivers/md/dm-thin-metadata.c
549
&pmd->data_space_map_root,
drivers/md/dm-thin-metadata.c
550
sizeof(pmd->data_space_map_root));
drivers/md/dm-thin-metadata.c
553
static int __write_initial_superblock(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
558
sector_t bdev_size = bdev_nr_sectors(pmd->bdev);
drivers/md/dm-thin-metadata.c
563
r = dm_sm_commit(pmd->data_sm);
drivers/md/dm-thin-metadata.c
567
r = dm_tm_pre_commit(pmd->tm);
drivers/md/dm-thin-metadata.c
571
r = save_sm_roots(pmd);
drivers/md/dm-thin-metadata.c
575
r = superblock_lock_zero(pmd, &sblock);
drivers/md/dm-thin-metadata.c
588
copy_sm_roots(pmd, disk_super);
drivers/md/dm-thin-metadata.c
590
disk_super->data_mapping_root = cpu_to_le64(pmd->root);
drivers/md/dm-thin-metadata.c
591
disk_super->device_details_root = cpu_to_le64(pmd->details_root);
drivers/md/dm-thin-metadata.c
594
disk_super->data_block_size = cpu_to_le32(pmd->data_block_size);
drivers/md/dm-thin-metadata.c
596
return dm_tm_commit(pmd->tm, sblock);
drivers/md/dm-thin-metadata.c
599
static int __format_metadata(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
603
r = dm_tm_create_with_sm(pmd->bm, THIN_SUPERBLOCK_LOCATION,
drivers/md/dm-thin-metadata.c
604
&pmd->tm, &pmd->metadata_sm);
drivers/md/dm-thin-metadata.c
606
pmd->tm = NULL;
drivers/md/dm-thin-metadata.c
607
pmd->metadata_sm = NULL;
drivers/md/dm-thin-metadata.c
612
pmd->data_sm = dm_sm_disk_create(pmd->tm, 0);
drivers/md/dm-thin-metadata.c
613
if (IS_ERR(pmd->data_sm)) {
drivers/md/dm-thin-metadata.c
615
r = PTR_ERR(pmd->data_sm);
drivers/md/dm-thin-metadata.c
616
pmd->data_sm = NULL;
drivers/md/dm-thin-metadata.c
620
pmd->nb_tm = dm_tm_create_non_blocking_clone(pmd->tm);
drivers/md/dm-thin-metadata.c
621
if (!pmd->nb_tm) {
drivers/md/dm-thin-metadata.c
627
__setup_btree_details(pmd);
drivers/md/dm-thin-metadata.c
629
r = dm_btree_empty(&pmd->info, &pmd->root);
drivers/md/dm-thin-metadata.c
633
r = dm_btree_empty(&pmd->details_info, &pmd->details_root);
drivers/md/dm-thin-metadata.c
639
r = __write_initial_superblock(pmd);
drivers/md/dm-thin-metadata.c
646
dm_tm_destroy(pmd->nb_tm);
drivers/md/dm-thin-metadata.c
647
pmd->nb_tm = NULL;
drivers/md/dm-thin-metadata.c
649
dm_sm_destroy(pmd->data_sm);
drivers/md/dm-thin-metadata.c
650
pmd->data_sm = NULL;
drivers/md/dm-thin-metadata.c
652
dm_tm_destroy(pmd->tm);
drivers/md/dm-thin-metadata.c
653
pmd->tm = NULL;
drivers/md/dm-thin-metadata.c
654
dm_sm_destroy(pmd->metadata_sm);
drivers/md/dm-thin-metadata.c
655
pmd->metadata_sm = NULL;
drivers/md/dm-thin-metadata.c
661
struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
675
if (bdev_read_only(pmd->bdev))
drivers/md/dm-thin-metadata.c
688
static int __open_metadata(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
694
r = dm_bm_read_lock(pmd->bm, THIN_SUPERBLOCK_LOCATION,
drivers/md/dm-thin-metadata.c
704
if (le32_to_cpu(disk_super->data_block_size) != pmd->data_block_size) {
drivers/md/dm-thin-metadata.c
707
(unsigned long long)pmd->data_block_size);
drivers/md/dm-thin-metadata.c
712
r = __check_incompat_features(disk_super, pmd);
drivers/md/dm-thin-metadata.c
716
r = dm_tm_open_with_sm(pmd->bm, THIN_SUPERBLOCK_LOCATION,
drivers/md/dm-thin-metadata.c
719
&pmd->tm, &pmd->metadata_sm);
drivers/md/dm-thin-metadata.c
721
pmd->tm = NULL;
drivers/md/dm-thin-metadata.c
722
pmd->metadata_sm = NULL;
drivers/md/dm-thin-metadata.c
727
pmd->data_sm = dm_sm_disk_open(pmd->tm, disk_super->data_space_map_root,
drivers/md/dm-thin-metadata.c
729
if (IS_ERR(pmd->data_sm)) {
drivers/md/dm-thin-metadata.c
731
r = PTR_ERR(pmd->data_sm);
drivers/md/dm-thin-metadata.c
732
pmd->data_sm = NULL;
drivers/md/dm-thin-metadata.c
736
pmd->nb_tm = dm_tm_create_non_blocking_clone(pmd->tm);
drivers/md/dm-thin-metadata.c
737
if (!pmd->nb_tm) {
drivers/md/dm-thin-metadata.c
749
pmd->root = le64_to_cpu(disk_super->data_mapping_root);
drivers/md/dm-thin-metadata.c
750
pmd->details_root = le64_to_cpu(disk_super->device_details_root);
drivers/md/dm-thin-metadata.c
752
__setup_btree_details(pmd);
drivers/md/dm-thin-metadata.c
758
dm_sm_destroy(pmd->data_sm);
drivers/md/dm-thin-metadata.c
759
pmd->data_sm = NULL;
drivers/md/dm-thin-metadata.c
761
dm_tm_destroy(pmd->tm);
drivers/md/dm-thin-metadata.c
762
pmd->tm = NULL;
drivers/md/dm-thin-metadata.c
763
dm_sm_destroy(pmd->metadata_sm);
drivers/md/dm-thin-metadata.c
764
pmd->metadata_sm = NULL;
drivers/md/dm-thin-metadata.c
771
static int __open_or_format_metadata(struct dm_pool_metadata *pmd, bool format_device)
drivers/md/dm-thin-metadata.c
775
r = __superblock_all_zeroes(pmd->bm, &unformatted);
drivers/md/dm-thin-metadata.c
780
return format_device ? __format_metadata(pmd) : -EPERM;
drivers/md/dm-thin-metadata.c
782
return __open_metadata(pmd);
drivers/md/dm-thin-metadata.c
785
static int __create_persistent_data_objects(struct dm_pool_metadata *pmd, bool format_device)
drivers/md/dm-thin-metadata.c
789
pmd->bm = dm_block_manager_create(pmd->bdev, THIN_METADATA_BLOCK_SIZE << SECTOR_SHIFT,
drivers/md/dm-thin-metadata.c
791
if (IS_ERR(pmd->bm)) {
drivers/md/dm-thin-metadata.c
793
r = PTR_ERR(pmd->bm);
drivers/md/dm-thin-metadata.c
794
pmd->bm = NULL;
drivers/md/dm-thin-metadata.c
798
r = __open_or_format_metadata(pmd, format_device);
drivers/md/dm-thin-metadata.c
800
dm_block_manager_destroy(pmd->bm);
drivers/md/dm-thin-metadata.c
801
pmd->bm = NULL;
drivers/md/dm-thin-metadata.c
807
static void __destroy_persistent_data_objects(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.c
810
dm_sm_destroy(pmd->data_sm);
drivers/md/dm-thin-metadata.c
811
pmd->data_sm = NULL;
drivers/md/dm-thin-metadata.c
812
dm_sm_destroy(pmd->metadata_sm);
drivers/md/dm-thin-metadata.c
813
pmd->metadata_sm = NULL;
drivers/md/dm-thin-metadata.c
814
dm_tm_destroy(pmd->nb_tm);
drivers/md/dm-thin-metadata.c
815
pmd->nb_tm = NULL;
drivers/md/dm-thin-metadata.c
816
dm_tm_destroy(pmd->tm);
drivers/md/dm-thin-metadata.c
817
pmd->tm = NULL;
drivers/md/dm-thin-metadata.c
819
dm_block_manager_destroy(pmd->bm);
drivers/md/dm-thin-metadata.c
822
static int __begin_transaction(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
832
r = dm_bm_read_lock(pmd->bm, THIN_SUPERBLOCK_LOCATION,
drivers/md/dm-thin-metadata.c
838
pmd->time = le32_to_cpu(disk_super->time);
drivers/md/dm-thin-metadata.c
839
pmd->root = le64_to_cpu(disk_super->data_mapping_root);
drivers/md/dm-thin-metadata.c
840
pmd->details_root = le64_to_cpu(disk_super->device_details_root);
drivers/md/dm-thin-metadata.c
841
pmd->trans_id = le64_to_cpu(disk_super->trans_id);
drivers/md/dm-thin-metadata.c
842
pmd->flags = le32_to_cpu(disk_super->flags);
drivers/md/dm-thin-metadata.c
843
pmd->data_block_size = le32_to_cpu(disk_super->data_block_size);
drivers/md/dm-thin-metadata.c
849
static int __write_changed_details(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
856
list_for_each_entry_safe(td, tmp, &pmd->thin_devices, list) {
drivers/md/dm-thin-metadata.c
868
r = dm_btree_insert(&pmd->details_info, pmd->details_root,
drivers/md/dm-thin-metadata.c
869
&key, &details, &pmd->details_root);
drivers/md/dm-thin-metadata.c
884
static int __commit_transaction(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
894
BUG_ON(!rwsem_is_locked(&pmd->root_lock));
drivers/md/dm-thin-metadata.c
896
if (unlikely(!pmd->in_service))
drivers/md/dm-thin-metadata.c
899
if (pmd->pre_commit_fn) {
drivers/md/dm-thin-metadata.c
900
r = pmd->pre_commit_fn(pmd->pre_commit_context);
drivers/md/dm-thin-metadata.c
907
r = __write_changed_details(pmd);
drivers/md/dm-thin-metadata.c
911
r = dm_sm_commit(pmd->data_sm);
drivers/md/dm-thin-metadata.c
915
r = dm_tm_pre_commit(pmd->tm);
drivers/md/dm-thin-metadata.c
919
r = save_sm_roots(pmd);
drivers/md/dm-thin-metadata.c
923
r = superblock_lock(pmd, &sblock);
drivers/md/dm-thin-metadata.c
928
disk_super->time = cpu_to_le32(pmd->time);
drivers/md/dm-thin-metadata.c
929
disk_super->data_mapping_root = cpu_to_le64(pmd->root);
drivers/md/dm-thin-metadata.c
930
disk_super->device_details_root = cpu_to_le64(pmd->details_root);
drivers/md/dm-thin-metadata.c
931
disk_super->trans_id = cpu_to_le64(pmd->trans_id);
drivers/md/dm-thin-metadata.c
932
disk_super->flags = cpu_to_le32(pmd->flags);
drivers/md/dm-thin-metadata.c
934
copy_sm_roots(pmd, disk_super);
drivers/md/dm-thin-metadata.c
936
return dm_tm_commit(pmd->tm, sblock);
drivers/md/dm-thin-metadata.c
939
static void __set_metadata_reserve(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.c
945
r = dm_sm_get_nr_blocks(pmd->metadata_sm, &total);
drivers/md/dm-thin-metadata.c
948
pmd->metadata_reserve = max_blocks;
drivers/md/dm-thin-metadata.c
950
pmd->metadata_reserve = min(max_blocks, div_u64(total, 10));
drivers/md/dm-thin-metadata.c
958
struct dm_pool_metadata *pmd;
drivers/md/dm-thin-metadata.c
960
pmd = kmalloc_obj(*pmd);
drivers/md/dm-thin-metadata.c
961
if (!pmd) {
drivers/md/dm-thin-metadata.c
966
init_rwsem(&pmd->root_lock);
drivers/md/dm-thin-metadata.c
967
pmd->time = 0;
drivers/md/dm-thin-metadata.c
968
INIT_LIST_HEAD(&pmd->thin_devices);
drivers/md/dm-thin-metadata.c
969
pmd->fail_io = false;
drivers/md/dm-thin-metadata.c
970
pmd->in_service = false;
drivers/md/dm-thin-metadata.c
971
pmd->bdev = bdev;
drivers/md/dm-thin-metadata.c
972
pmd->data_block_size = data_block_size;
drivers/md/dm-thin-metadata.c
973
pmd->pre_commit_fn = NULL;
drivers/md/dm-thin-metadata.c
974
pmd->pre_commit_context = NULL;
drivers/md/dm-thin-metadata.c
976
r = __create_persistent_data_objects(pmd, format_device);
drivers/md/dm-thin-metadata.c
978
kfree(pmd);
drivers/md/dm-thin-metadata.c
982
r = __begin_transaction(pmd);
drivers/md/dm-thin-metadata.c
984
if (dm_pool_metadata_close(pmd) < 0)
drivers/md/dm-thin-metadata.c
989
__set_metadata_reserve(pmd);
drivers/md/dm-thin-metadata.c
991
return pmd;
drivers/md/dm-thin-metadata.c
994
int dm_pool_metadata_close(struct dm_pool_metadata *pmd)
drivers/md/dm-thin-metadata.h
100
int dm_pool_set_metadata_transaction_id(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.h
104
int dm_pool_get_metadata_transaction_id(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.h
116
int dm_pool_reserve_metadata_snap(struct dm_pool_metadata *pmd);
drivers/md/dm-thin-metadata.h
117
int dm_pool_release_metadata_snap(struct dm_pool_metadata *pmd);
drivers/md/dm-thin-metadata.h
119
int dm_pool_get_metadata_snap(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.h
129
int dm_pool_open_thin_device(struct dm_pool_metadata *pmd, dm_thin_id dev,
drivers/md/dm-thin-metadata.h
162
int dm_pool_alloc_data_block(struct dm_pool_metadata *pmd, dm_block_t *result);
drivers/md/dm-thin-metadata.h
178
bool dm_pool_changed_this_transaction(struct dm_pool_metadata *pmd);
drivers/md/dm-thin-metadata.h
187
int dm_pool_get_free_block_count(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.h
190
int dm_pool_get_free_metadata_block_count(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.h
193
int dm_pool_get_metadata_dev_size(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.h
196
int dm_pool_get_data_dev_size(struct dm_pool_metadata *pmd, dm_block_t *result);
drivers/md/dm-thin-metadata.h
198
int dm_pool_block_is_shared(struct dm_pool_metadata *pmd, dm_block_t b, bool *result);
drivers/md/dm-thin-metadata.h
200
int dm_pool_inc_data_range(struct dm_pool_metadata *pmd, dm_block_t b, dm_block_t e);
drivers/md/dm-thin-metadata.h
201
int dm_pool_dec_data_range(struct dm_pool_metadata *pmd, dm_block_t b, dm_block_t e);
drivers/md/dm-thin-metadata.h
207
int dm_pool_resize_data_dev(struct dm_pool_metadata *pmd, dm_block_t new_size);
drivers/md/dm-thin-metadata.h
208
int dm_pool_resize_metadata_dev(struct dm_pool_metadata *pmd, dm_block_t new_size);
drivers/md/dm-thin-metadata.h
214
void dm_pool_metadata_read_only(struct dm_pool_metadata *pmd);
drivers/md/dm-thin-metadata.h
215
void dm_pool_metadata_read_write(struct dm_pool_metadata *pmd);
drivers/md/dm-thin-metadata.h
217
int dm_pool_register_metadata_threshold(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.h
225
int dm_pool_metadata_set_needs_check(struct dm_pool_metadata *pmd);
drivers/md/dm-thin-metadata.h
226
bool dm_pool_metadata_needs_check(struct dm_pool_metadata *pmd);
drivers/md/dm-thin-metadata.h
231
void dm_pool_issue_prefetches(struct dm_pool_metadata *pmd);
drivers/md/dm-thin-metadata.h
236
void dm_pool_register_pre_commit_callback(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.h
49
int dm_pool_metadata_close(struct dm_pool_metadata *pmd);
drivers/md/dm-thin-metadata.h
62
int dm_pool_create_thin(struct dm_pool_metadata *pmd, dm_thin_id dev);
drivers/md/dm-thin-metadata.h
70
int dm_pool_create_snap(struct dm_pool_metadata *pmd, dm_thin_id dev,
drivers/md/dm-thin-metadata.h
78
int dm_pool_delete_thin_device(struct dm_pool_metadata *pmd,
drivers/md/dm-thin-metadata.h
85
int dm_pool_commit_metadata(struct dm_pool_metadata *pmd);
drivers/md/dm-thin-metadata.h
95
int dm_pool_abort_metadata(struct dm_pool_metadata *pmd);
drivers/md/dm-thin.c
1095
r = dm_pool_block_is_shared(pool->pmd, b, &shared);
drivers/md/dm-thin.c
1108
r = dm_pool_block_is_shared(pool->pmd, e, &shared);
drivers/md/dm-thin.c
1171
r = dm_pool_inc_data_range(pool->pmd, m->data_block, data_end);
drivers/md/dm-thin.c
1204
r = dm_pool_dec_data_range(pool->pmd, m->data_block,
drivers/md/dm-thin.c
1449
r = dm_pool_get_free_metadata_block_count(pool->pmd, &nr_free);
drivers/md/dm-thin.c
1469
r = dm_pool_get_free_block_count(pool->pmd, &nr_free);
drivers/md/dm-thin.c
1490
r = dm_pool_commit_metadata(pool->pmd);
drivers/md/dm-thin.c
1522
r = dm_pool_get_free_block_count(pool->pmd, &free_blocks);
drivers/md/dm-thin.c
1539
r = dm_pool_get_free_block_count(pool->pmd, &free_blocks);
drivers/md/dm-thin.c
1551
r = dm_pool_alloc_data_block(pool->pmd, result);
drivers/md/dm-thin.c
1560
r = dm_pool_get_free_metadata_block_count(pool->pmd, &free_blocks);
drivers/md/dm-thin.c
2231
dm_pool_issue_prefetches(pool->pmd);
drivers/md/dm-thin.c
2387
!(dm_pool_changed_this_transaction(pool->pmd) && need_commit_due_to_time(pool)))
drivers/md/dm-thin.c
239
struct dm_pool_metadata *pmd;
drivers/md/dm-thin.c
2419
dm_pool_issue_prefetches(pool->pmd);
drivers/md/dm-thin.c
2543
bool needs_check = dm_pool_metadata_needs_check(pool->pmd);
drivers/md/dm-thin.c
2569
dm_pool_metadata_read_only(pool->pmd);
drivers/md/dm-thin.c
2582
dm_pool_metadata_read_only(pool->pmd);
drivers/md/dm-thin.c
2618
dm_pool_metadata_read_write(pool->pmd);
drivers/md/dm-thin.c
2643
if (dm_pool_abort_metadata(pool->pmd)) {
drivers/md/dm-thin.c
2648
if (dm_pool_metadata_set_needs_check(pool->pmd)) {
drivers/md/dm-thin.c
2913
if (dm_pool_metadata_close(pool->pmd) < 0)
drivers/md/dm-thin.c
2943
struct dm_pool_metadata *pmd;
drivers/md/dm-thin.c
2946
pmd = dm_pool_metadata_open(metadata_dev, block_size, format_device);
drivers/md/dm-thin.c
2947
if (IS_ERR(pmd)) {
drivers/md/dm-thin.c
2949
return ERR_CAST(pmd);
drivers/md/dm-thin.c
2959
pool->pmd = pmd;
drivers/md/dm-thin.c
3064
if (dm_pool_metadata_close(pmd))
drivers/md/dm-thin.c
3408
r = dm_pool_register_metadata_threshold(pt->pool->pmd,
drivers/md/dm-thin.c
3417
dm_pool_register_pre_commit_callback(pool->pmd,
drivers/md/dm-thin.c
3465
r = dm_pool_get_data_dev_size(pool->pmd, &sb_data_size);
drivers/md/dm-thin.c
3479
if (dm_pool_metadata_needs_check(pool->pmd)) {
drivers/md/dm-thin.c
3489
r = dm_pool_resize_data_dev(pool->pmd, data_size);
drivers/md/dm-thin.c
3512
r = dm_pool_get_metadata_dev_size(pool->pmd, &sb_metadata_dev_size);
drivers/md/dm-thin.c
3526
if (dm_pool_metadata_needs_check(pool->pmd)) {
drivers/md/dm-thin.c
3540
r = dm_pool_resize_metadata_dev(pool->pmd, metadata_dev_size);
drivers/md/dm-thin.c
3714
r = dm_pool_create_thin(pool->pmd, dev_id);
drivers/md/dm-thin.c
3742
r = dm_pool_create_snap(pool->pmd, dev_id, origin_dev_id);
drivers/md/dm-thin.c
3765
r = dm_pool_delete_thin_device(pool->pmd, dev_id);
drivers/md/dm-thin.c
3791
r = dm_pool_set_metadata_transaction_id(pool->pmd, old_id, new_id);
drivers/md/dm-thin.c
3811
r = dm_pool_reserve_metadata_snap(pool->pmd);
drivers/md/dm-thin.c
3826
r = dm_pool_release_metadata_snap(pool->pmd);
drivers/md/dm-thin.c
3940
r = dm_pool_get_metadata_transaction_id(pool->pmd, &transaction_id);
drivers/md/dm-thin.c
3947
r = dm_pool_get_free_metadata_block_count(pool->pmd, &nr_free_blocks_metadata);
drivers/md/dm-thin.c
3954
r = dm_pool_get_metadata_dev_size(pool->pmd, &nr_blocks_metadata);
drivers/md/dm-thin.c
3961
r = dm_pool_get_free_block_count(pool->pmd, &nr_free_blocks_data);
drivers/md/dm-thin.c
3968
r = dm_pool_get_data_dev_size(pool->pmd, &nr_blocks_data);
drivers/md/dm-thin.c
3975
r = dm_pool_get_metadata_snap(pool->pmd, &held_root);
drivers/md/dm-thin.c
4014
if (dm_pool_metadata_needs_check(pool->pmd))
drivers/md/dm-thin.c
4258
r = dm_pool_open_thin_device(tc->pool->pmd, tc->dev_id, &tc->td);
drivers/net/ethernet/intel/ice/devlink/port.c
100
"%-6u", options[i].pmd);
drivers/net/ethernet/intel/ice/devlink/port.c
212
if (count == options[j].pmd) {
drivers/net/ethernet/intel/ice/devlink/port.c
288
attrs->lanes = max_t(int, attrs->lanes, options[i].pmd);
drivers/net/ethernet/intel/ice/ice_adminq_cmd.h
1559
u8 pmd;
drivers/net/ethernet/intel/ice/ice_common.c
4302
options[i].pmd = FIELD_GET(ICE_AQC_PORT_OPT_PMD_COUNT_M,
drivers/net/ethernet/intel/ice/ice_common.c
4303
options[i].pmd);
drivers/net/ethernet/intel/ice/ice_common.c
4307
options[i].pmd, options[i].max_lane_speed);
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3771
u64 total_offset, pmd, val;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3830
err = ice_phy_calc_pmd_adj_e82x(hw, port, link_spd, fec_mode, &pmd);
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3838
total_offset += pmd;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3840
total_offset -= pmd;
drivers/pmdomain/bcm/bcm63xx-power.c
139
struct bcm63xx_power_dev *pmd = &power->dev[ndom];
drivers/pmdomain/bcm/bcm63xx-power.c
142
pmd->power = power;
drivers/pmdomain/bcm/bcm63xx-power.c
143
pmd->mask = BIT(entry->bit);
drivers/pmdomain/bcm/bcm63xx-power.c
144
pmd->genpd.name = entry->name;
drivers/pmdomain/bcm/bcm63xx-power.c
145
pmd->genpd.flags = entry->flags;
drivers/pmdomain/bcm/bcm63xx-power.c
147
ret = bcm63xx_power_get_state(pmd, &is_on);
drivers/pmdomain/bcm/bcm63xx-power.c
150
pmd->genpd.name);
drivers/pmdomain/bcm/bcm63xx-power.c
152
pmd->genpd.power_on = bcm63xx_power_on;
drivers/pmdomain/bcm/bcm63xx-power.c
153
pmd->genpd.power_off = bcm63xx_power_off;
drivers/pmdomain/bcm/bcm63xx-power.c
155
pm_genpd_init(&pmd->genpd, NULL, !is_on);
drivers/pmdomain/bcm/bcm63xx-power.c
156
power->genpd[entry->bit] = &pmd->genpd;
drivers/pmdomain/bcm/bcm63xx-power.c
38
static int bcm63xx_power_get_state(struct bcm63xx_power_dev *pmd, bool *is_on)
drivers/pmdomain/bcm/bcm63xx-power.c
40
struct bcm63xx_power *power = pmd->power;
drivers/pmdomain/bcm/bcm63xx-power.c
42
if (!pmd->mask) {
drivers/pmdomain/bcm/bcm63xx-power.c
47
*is_on = !(__raw_readl(power->base) & pmd->mask);
drivers/pmdomain/bcm/bcm63xx-power.c
52
static int bcm63xx_power_set_state(struct bcm63xx_power_dev *pmd, bool on)
drivers/pmdomain/bcm/bcm63xx-power.c
54
struct bcm63xx_power *power = pmd->power;
drivers/pmdomain/bcm/bcm63xx-power.c
58
if (!pmd->mask)
drivers/pmdomain/bcm/bcm63xx-power.c
64
val &= ~pmd->mask;
drivers/pmdomain/bcm/bcm63xx-power.c
66
val |= pmd->mask;
drivers/pmdomain/bcm/bcm63xx-power.c
75
struct bcm63xx_power_dev *pmd = container_of(genpd,
drivers/pmdomain/bcm/bcm63xx-power.c
78
return bcm63xx_power_set_state(pmd, true);
drivers/pmdomain/bcm/bcm63xx-power.c
83
struct bcm63xx_power_dev *pmd = container_of(genpd,
drivers/pmdomain/bcm/bcm63xx-power.c
86
return bcm63xx_power_set_state(pmd, false);
drivers/pmdomain/renesas/rmobile-sysc.c
300
struct device_node *np, *pmd;
drivers/pmdomain/renesas/rmobile-sysc.c
312
pmd = of_get_child_by_name(np, "pm-domains");
drivers/pmdomain/renesas/rmobile-sysc.c
313
if (!pmd) {
drivers/pmdomain/renesas/rmobile-sysc.c
325
ret = rmobile_add_pm_domains(base, pmd, NULL);
drivers/pmdomain/renesas/rmobile-sysc.c
326
of_node_put(pmd);
drivers/pmdomain/starfive/jh71xx-pmu.c
158
pmd->genpd.name, on ? "on" : "off");
drivers/pmdomain/starfive/jh71xx-pmu.c
165
static int jh7110_aon_pmu_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool on)
drivers/pmdomain/starfive/jh71xx-pmu.c
167
struct jh71xx_pmu *pmu = pmd->pmu;
drivers/pmdomain/starfive/jh71xx-pmu.c
185
static int jh71xx_pmu_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool on)
drivers/pmdomain/starfive/jh71xx-pmu.c
187
struct jh71xx_pmu *pmu = pmd->pmu;
drivers/pmdomain/starfive/jh71xx-pmu.c
192
ret = jh71xx_pmu_get_state(pmd, mask, &is_on);
drivers/pmdomain/starfive/jh71xx-pmu.c
195
pmd->genpd.name);
drivers/pmdomain/starfive/jh71xx-pmu.c
201
pmd->genpd.name, on ? "en" : "dis");
drivers/pmdomain/starfive/jh71xx-pmu.c
205
return match_data->pmu_set_state(pmd, mask, on);
drivers/pmdomain/starfive/jh71xx-pmu.c
210
struct jh71xx_pmu_dev *pmd = container_of(genpd,
drivers/pmdomain/starfive/jh71xx-pmu.c
212
u32 pwr_mask = BIT(pmd->domain_info->bit);
drivers/pmdomain/starfive/jh71xx-pmu.c
214
return jh71xx_pmu_set_state(pmd, pwr_mask, true);
drivers/pmdomain/starfive/jh71xx-pmu.c
219
struct jh71xx_pmu_dev *pmd = container_of(genpd,
drivers/pmdomain/starfive/jh71xx-pmu.c
221
u32 pwr_mask = BIT(pmd->domain_info->bit);
drivers/pmdomain/starfive/jh71xx-pmu.c
223
return jh71xx_pmu_set_state(pmd, pwr_mask, false);
drivers/pmdomain/starfive/jh71xx-pmu.c
289
struct jh71xx_pmu_dev *pmd;
drivers/pmdomain/starfive/jh71xx-pmu.c
294
pmd = devm_kzalloc(pmu->dev, sizeof(*pmd), GFP_KERNEL);
drivers/pmdomain/starfive/jh71xx-pmu.c
295
if (!pmd)
drivers/pmdomain/starfive/jh71xx-pmu.c
298
pmd->domain_info = &pmu->match_data->domain_info[index];
drivers/pmdomain/starfive/jh71xx-pmu.c
299
pmd->pmu = pmu;
drivers/pmdomain/starfive/jh71xx-pmu.c
300
pwr_mask = BIT(pmd->domain_info->bit);
drivers/pmdomain/starfive/jh71xx-pmu.c
302
pmd->genpd.name = pmd->domain_info->name;
drivers/pmdomain/starfive/jh71xx-pmu.c
303
pmd->genpd.flags = pmd->domain_info->flags;
drivers/pmdomain/starfive/jh71xx-pmu.c
305
ret = jh71xx_pmu_get_state(pmd, pwr_mask, &is_on);
drivers/pmdomain/starfive/jh71xx-pmu.c
308
pmd->genpd.name);
drivers/pmdomain/starfive/jh71xx-pmu.c
310
pmd->genpd.power_on = jh71xx_pmu_on;
drivers/pmdomain/starfive/jh71xx-pmu.c
311
pmd->genpd.power_off = jh71xx_pmu_off;
drivers/pmdomain/starfive/jh71xx-pmu.c
312
pm_genpd_init(&pmd->genpd, NULL, !is_on);
drivers/pmdomain/starfive/jh71xx-pmu.c
314
pmu->genpd_data.domains[index] = &pmd->genpd;
drivers/pmdomain/starfive/jh71xx-pmu.c
65
int (*pmu_set_state)(struct jh71xx_pmu_dev *pmd,
drivers/pmdomain/starfive/jh71xx-pmu.c
85
static int jh71xx_pmu_get_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool *is_on)
drivers/pmdomain/starfive/jh71xx-pmu.c
87
struct jh71xx_pmu *pmu = pmd->pmu;
drivers/pmdomain/starfive/jh71xx-pmu.c
97
static int jh7110_pmu_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool on)
drivers/pmdomain/starfive/jh71xx-pmu.c
99
struct jh71xx_pmu *pmu = pmd->pmu;
fs/dax.c
1807
struct xa_state *xas, void **entry, bool pmd)
fs/dax.c
1811
size_t size = pmd ? PMD_SIZE : PAGE_SIZE;
fs/dax.c
1814
unsigned long entry_flags = pmd ? DAX_PMD : 0;
fs/dax.c
1820
if (!pmd && vmf->cow_page)
fs/dax.c
1826
if (!pmd)
fs/dax.c
1833
return pmd ? VM_FAULT_FALLBACK : VM_FAULT_SIGBUS;
fs/dax.c
1838
return pmd ? VM_FAULT_FALLBACK : dax_fault_return(err);
fs/dax.c
1853
if (pmd)
fs/dax.c
1903
if (pmd_trans_huge(*vmf->pmd)) {
fs/dax.c
2024
if (!pmd_none(*vmf->pmd) && !pmd_trans_huge(*vmf->pmd)) {
fs/dax.c
2043
split_huge_pmd(vmf->vma, vmf->pmd, vmf->address);
fs/proc/task_mmu.c
1065
static void smaps_pmd_entry(pmd_t *pmd, unsigned long addr,
fs/proc/task_mmu.c
1075
if (pmd_none(*pmd))
fs/proc/task_mmu.c
1077
if (pmd_present(*pmd)) {
fs/proc/task_mmu.c
1078
page = vm_normal_page_pmd(vma, addr, *pmd);
fs/proc/task_mmu.c
1081
const softleaf_t entry = softleaf_from_pmd(*pmd);
fs/proc/task_mmu.c
1098
smaps_account(mss, page, true, pmd_young(*pmd), pmd_dirty(*pmd),
fs/proc/task_mmu.c
1102
static void smaps_pmd_entry(pmd_t *pmd, unsigned long addr,
fs/proc/task_mmu.c
1108
static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
fs/proc/task_mmu.c
1115
ptl = pmd_trans_huge_lock(pmd, vma);
fs/proc/task_mmu.c
1117
smaps_pmd_entry(pmd, addr, walk);
fs/proc/task_mmu.c
1122
pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
fs/proc/task_mmu.c
1651
pmd_t old, pmd = *pmdp;
fs/proc/task_mmu.c
1656
if (pmd_present(pmd)) {
fs/proc/task_mmu.c
1660
pmd = pmd_mkdirty(pmd);
fs/proc/task_mmu.c
1662
pmd = pmd_mkyoung(pmd);
fs/proc/task_mmu.c
1664
pmd = pmd_wrprotect(pmd);
fs/proc/task_mmu.c
1665
pmd = pmd_clear_soft_dirty(pmd);
fs/proc/task_mmu.c
1667
set_pmd_at(vma->vm_mm, addr, pmdp, pmd);
fs/proc/task_mmu.c
1668
} else if (pmd_is_migration_entry(pmd)) {
fs/proc/task_mmu.c
1669
pmd = pmd_swp_clear_soft_dirty(pmd);
fs/proc/task_mmu.c
1670
set_pmd_at(vma->vm_mm, addr, pmdp, pmd);
fs/proc/task_mmu.c
1680
static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr,
fs/proc/task_mmu.c
1689
ptl = pmd_trans_huge_lock(pmd, vma);
fs/proc/task_mmu.c
1692
clear_soft_dirty_pmd(vma, addr, pmd);
fs/proc/task_mmu.c
1696
if (!pmd_present(*pmd))
fs/proc/task_mmu.c
1699
folio = pmd_folio(*pmd);
fs/proc/task_mmu.c
1702
pmdp_test_and_clear_young(vma, addr, pmd);
fs/proc/task_mmu.c
1710
pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
fs/proc/task_mmu.c
2007
pmd_t pmd = *pmdp;
fs/proc/task_mmu.c
2015
if (pmd_none(pmd))
fs/proc/task_mmu.c
2018
if (pmd_present(pmd)) {
fs/proc/task_mmu.c
2019
page = pmd_page(pmd);
fs/proc/task_mmu.c
2022
if (pmd_soft_dirty(pmd))
fs/proc/task_mmu.c
2024
if (pmd_uffd_wp(pmd))
fs/proc/task_mmu.c
2027
frame = pmd_pfn(pmd) + idx;
fs/proc/task_mmu.c
2029
const softleaf_t entry = softleaf_from_pmd(pmd);
fs/proc/task_mmu.c
2041
if (pmd_swp_soft_dirty(pmd))
fs/proc/task_mmu.c
2043
if (pmd_swp_uffd_wp(pmd))
fs/proc/task_mmu.c
2045
VM_WARN_ON_ONCE(!pmd_is_migration_entry(pmd));
fs/proc/task_mmu.c
2414
unsigned long addr, pmd_t pmd)
fs/proc/task_mmu.c
2418
if (pmd_none(pmd))
fs/proc/task_mmu.c
2421
if (pmd_present(pmd)) {
fs/proc/task_mmu.c
2425
if (!pmd_uffd_wp(pmd))
fs/proc/task_mmu.c
2429
page = vm_normal_page_pmd(vma, addr, pmd);
fs/proc/task_mmu.c
2434
if (is_huge_zero_pmd(pmd))
fs/proc/task_mmu.c
2436
if (pmd_soft_dirty(pmd))
fs/proc/task_mmu.c
2440
if (!pmd_swp_uffd_wp(pmd))
fs/proc/task_mmu.c
2442
if (pmd_swp_soft_dirty(pmd))
fs/proc/task_mmu.c
2446
const softleaf_t entry = softleaf_from_pmd(pmd);
fs/proc/task_mmu.c
2460
pmd_t old, pmd = *pmdp;
fs/proc/task_mmu.c
2462
if (pmd_present(pmd)) {
fs/proc/task_mmu.c
2464
pmd = pmd_mkuffd_wp(old);
fs/proc/task_mmu.c
2465
set_pmd_at(vma->vm_mm, addr, pmdp, pmd);
fs/proc/task_mmu.c
2466
} else if (pmd_is_migration_entry(pmd)) {
fs/proc/task_mmu.c
2467
pmd = pmd_swp_mkuffd_wp(pmd);
fs/proc/task_mmu.c
2468
set_pmd_at(vma->vm_mm, addr, pmdp, pmd);
fs/proc/task_mmu.c
2683
static int pagemap_scan_thp_entry(pmd_t *pmd, unsigned long start,
fs/proc/task_mmu.c
2693
ptl = pmd_trans_huge_lock(pmd, vma);
fs/proc/task_mmu.c
2698
pagemap_thp_category(p, vma, start, *pmd);
fs/proc/task_mmu.c
2718
split_huge_pmd(vma, pmd, start);
fs/proc/task_mmu.c
2724
make_uffd_wp_pmd(vma, start, pmd);
fs/proc/task_mmu.c
2734
static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start,
fs/proc/task_mmu.c
2744
ret = pagemap_scan_thp_entry(pmd, start, end, walk);
fs/proc/task_mmu.c
2749
start_pte = pte = pte_offset_map_lock(vma->vm_mm, pmd, start, &ptl);
fs/proc/task_mmu.c
3193
static struct page *can_gather_numa_stats_pmd(pmd_t pmd,
fs/proc/task_mmu.c
3200
if (!pmd_present(pmd))
fs/proc/task_mmu.c
3203
page = vm_normal_page_pmd(vma, addr, pmd);
fs/proc/task_mmu.c
3218
static int gather_pte_stats(pmd_t *pmd, unsigned long addr,
fs/proc/task_mmu.c
3228
ptl = pmd_trans_huge_lock(pmd, vma);
fs/proc/task_mmu.c
3232
page = can_gather_numa_stats_pmd(*pmd, vma, addr);
fs/proc/task_mmu.c
3234
gather_stats(page, md, pmd_dirty(*pmd),
fs/proc/task_mmu.c
3240
orig_pte = pte = pte_offset_map_lock(walk->mm, pmd, addr, &ptl);
fs/userfaultfd.c
292
pmd_t *pmd, _pmd;
fs/userfaultfd.c
308
pmd = pmd_offset(pud, address);
fs/userfaultfd.c
310
_pmd = pmdp_get_lockless(pmd);
fs/userfaultfd.c
325
pte = pte_offset_map(pmd, address);
include/asm-generic/pgalloc.h
160
static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
include/asm-generic/pgalloc.h
162
struct ptdesc *ptdesc = virt_to_ptdesc(pmd);
include/asm-generic/pgalloc.h
164
BUG_ON((unsigned long)pmd & (PAGE_SIZE-1));
include/asm-generic/pgtable-nopmd.h
36
#define pmd_ERROR(pmd) (pud_ERROR((pmd).pud))
include/asm-generic/pgtable-nopmd.h
38
#define pud_populate(mm, pmd, pte) do { } while (0)
include/asm-generic/pgtable-nopmd.h
63
static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
include/asm-generic/pgtable_uffd.h
27
static __always_inline int pmd_uffd_wp(pmd_t pmd)
include/asm-generic/pgtable_uffd.h
37
static __always_inline pmd_t pmd_mkuffd_wp(pmd_t pmd)
include/asm-generic/pgtable_uffd.h
39
return pmd;
include/asm-generic/pgtable_uffd.h
47
static __always_inline pmd_t pmd_clear_uffd_wp(pmd_t pmd)
include/asm-generic/pgtable_uffd.h
49
return pmd;
include/asm-generic/pgtable_uffd.h
67
static inline pmd_t pmd_swp_mkuffd_wp(pmd_t pmd)
include/asm-generic/pgtable_uffd.h
69
return pmd;
include/asm-generic/pgtable_uffd.h
72
static inline int pmd_swp_uffd_wp(pmd_t pmd)
include/asm-generic/pgtable_uffd.h
77
static inline pmd_t pmd_swp_clear_uffd_wp(pmd_t pmd)
include/asm-generic/pgtable_uffd.h
79
return pmd;
include/linux/huge_mm.h
29
pmd_t *pmd, unsigned long addr, unsigned long next);
include/linux/huge_mm.h
30
int zap_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma, pmd_t *pmd,
include/linux/huge_mm.h
37
pmd_t *pmd, unsigned long addr, pgprot_t newprot,
include/linux/huge_mm.h
422
void __split_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,
include/linux/huge_mm.h
436
static inline bool pmd_is_huge(pmd_t pmd)
include/linux/huge_mm.h
438
if (pmd_present(pmd)) {
include/linux/huge_mm.h
439
return pmd_trans_huge(pmd);
include/linux/huge_mm.h
440
} else if (!pmd_none(pmd)) {
include/linux/huge_mm.h
489
spinlock_t *__pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma);
include/linux/huge_mm.h
493
static inline spinlock_t *pmd_trans_huge_lock(pmd_t *pmd,
include/linux/huge_mm.h
496
if (pmd_is_huge(*pmd))
include/linux/huge_mm.h
497
return __pmd_trans_huge_lock(pmd, vma);
include/linux/huge_mm.h
540
static inline bool is_huge_zero_pmd(pmd_t pmd)
include/linux/huge_mm.h
542
return pmd_present(pmd) && is_huge_zero_pfn(pmd_pfn(pmd));
include/linux/huge_mm.h
565
pmd_t *pmd, bool freeze);
include/linux/huge_mm.h
568
void map_anon_folio_pmd_nopf(struct folio *folio, pmd_t *pmd,
include/linux/huge_mm.h
657
static inline void __split_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,
include/linux/huge_mm.h
662
unsigned long address, pmd_t *pmd,
include/linux/huge_mm.h
694
static inline spinlock_t *pmd_trans_huge_lock(pmd_t *pmd,
include/linux/huge_mm.h
725
static inline bool is_huge_zero_pmd(pmd_t pmd)
include/linux/huge_mm.h
768
static inline bool pmd_is_huge(pmd_t pmd)
include/linux/hugetlb.h
188
static inline pte_t *pte_offset_huge(pmd_t *pmd, unsigned long address)
include/linux/hugetlb.h
190
return pte_offset_kernel(pmd, address);
include/linux/hugetlb.h
192
static inline pte_t *pte_alloc_huge(struct mm_struct *mm, pmd_t *pmd,
include/linux/hugetlb.h
195
return pte_alloc(mm, pmd) ? NULL : pte_offset_huge(pmd, address);
include/linux/leafops.h
101
if (pmd_swp_soft_dirty(pmd))
include/linux/leafops.h
102
pmd = pmd_swp_clear_soft_dirty(pmd);
include/linux/leafops.h
103
if (pmd_swp_uffd_wp(pmd))
include/linux/leafops.h
104
pmd = pmd_swp_clear_uffd_wp(pmd);
include/linux/leafops.h
105
arch_entry = __pmd_to_swp_entry(pmd);
include/linux/leafops.h
113
static inline softleaf_t softleaf_from_pmd(pmd_t pmd)
include/linux/leafops.h
584
static inline bool pmd_is_device_private_entry(pmd_t pmd)
include/linux/leafops.h
586
return softleaf_is_device_private(softleaf_from_pmd(pmd));
include/linux/leafops.h
591
static inline bool pmd_is_device_private_entry(pmd_t pmd)
include/linux/leafops.h
604
static inline bool pmd_is_migration_entry(pmd_t pmd)
include/linux/leafops.h
606
return softleaf_is_migration(softleaf_from_pmd(pmd));
include/linux/leafops.h
619
static inline bool pmd_is_valid_softleaf(pmd_t pmd)
include/linux/leafops.h
621
const softleaf_t entry = softleaf_from_pmd(pmd);
include/linux/leafops.h
94
static inline softleaf_t softleaf_from_pmd(pmd_t pmd)
include/linux/leafops.h
98
if (pmd_present(pmd) || pmd_none(pmd))
include/linux/mm.h
2829
unsigned long addr, pmd_t pmd);
include/linux/mm.h
2831
pmd_t pmd);
include/linux/mm.h
3176
static inline bool pmd_special(pmd_t pmd)
include/linux/mm.h
3181
static inline pmd_t pmd_mkspecial(pmd_t pmd)
include/linux/mm.h
3183
return pmd;
include/linux/mm.h
3299
int __pte_alloc(struct mm_struct *mm, pmd_t *pmd);
include/linux/mm.h
3300
int __pte_alloc_kernel(pmd_t *pmd);
include/linux/mm.h
3472
static inline spinlock_t *pte_lockptr(struct mm_struct *mm, pmd_t *pmd)
include/linux/mm.h
3474
return ptlock_ptr(page_ptdesc(pmd_page(*pmd)));
include/linux/mm.h
3504
static inline spinlock_t *pte_lockptr(struct mm_struct *mm, pmd_t *pmd)
include/linux/mm.h
3549
pte_t *__pte_offset_map(pmd_t *pmd, unsigned long addr, pmd_t *pmdvalp);
include/linux/mm.h
3551
static inline pte_t *pte_offset_map(pmd_t *pmd, unsigned long addr)
include/linux/mm.h
3553
return __pte_offset_map(pmd, addr, NULL);
include/linux/mm.h
3556
pte_t *pte_offset_map_lock(struct mm_struct *mm, pmd_t *pmd,
include/linux/mm.h
3559
pte_t *pte_offset_map_ro_nolock(struct mm_struct *mm, pmd_t *pmd,
include/linux/mm.h
3561
pte_t *pte_offset_map_rw_nolock(struct mm_struct *mm, pmd_t *pmd,
include/linux/mm.h
3570
#define pte_alloc(mm, pmd) (unlikely(pmd_none(*(pmd))) && __pte_alloc(mm, pmd))
include/linux/mm.h
3572
#define pte_alloc_map(mm, pmd, address) \
include/linux/mm.h
3573
(pte_alloc(mm, pmd) ? NULL : pte_offset_map(pmd, address))
include/linux/mm.h
3575
#define pte_alloc_map_lock(mm, pmd, address, ptlp) \
include/linux/mm.h
3576
(pte_alloc(mm, pmd) ? \
include/linux/mm.h
3577
NULL : pte_offset_map_lock(mm, pmd, address, ptlp))
include/linux/mm.h
3579
#define pte_alloc_kernel(pmd, address) \
include/linux/mm.h
3580
((unlikely(pmd_none(*(pmd))) && __pte_alloc_kernel(pmd))? \
include/linux/mm.h
3581
NULL: pte_offset_kernel(pmd, address))
include/linux/mm.h
3585
static inline struct page *pmd_pgtable_page(pmd_t *pmd)
include/linux/mm.h
3588
return virt_to_page((void *)((unsigned long) pmd & mask));
include/linux/mm.h
3591
static inline struct ptdesc *pmd_ptdesc(pmd_t *pmd)
include/linux/mm.h
3593
return page_ptdesc(pmd_pgtable_page(pmd));
include/linux/mm.h
3596
static inline spinlock_t *pmd_lockptr(struct mm_struct *mm, pmd_t *pmd)
include/linux/mm.h
3598
return ptlock_ptr(pmd_ptdesc(pmd));
include/linux/mm.h
3609
#define pmd_huge_pte(mm, pmd) (pmd_ptdesc(pmd)->pmd_huge_pte)
include/linux/mm.h
3613
static inline spinlock_t *pmd_lockptr(struct mm_struct *mm, pmd_t *pmd)
include/linux/mm.h
3620
#define pmd_huge_pte(mm, pmd) ((mm)->pmd_huge_pte)
include/linux/mm.h
3624
static inline spinlock_t *pmd_lock(struct mm_struct *mm, pmd_t *pmd)
include/linux/mm.h
3626
spinlock_t *ptl = pmd_lockptr(mm, pmd);
include/linux/mm.h
4493
pte_t *vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node,
include/linux/mm.h
4501
void vmemmap_set_pmd(pmd_t *pmd, void *p, int node,
include/linux/mm.h
4503
int vmemmap_check_pmd(pmd_t *pmd, int node,
include/linux/mm.h
708
pmd_t *pmd; /* Pointer to pmd entry matching
include/linux/page_table_check.h
106
pmd_t pmd)
include/linux/page_table_check.h
111
__page_table_check_pte_clear_range(mm, addr, pmd);
include/linux/page_table_check.h
130
unsigned long addr, pmd_t pmd)
include/linux/page_table_check.h
146
unsigned long addr, pmd_t *pmdp, pmd_t pmd, unsigned int nr)
include/linux/page_table_check.h
157
pmd_t pmd)
include/linux/page_table_check.h
163
#define page_table_check_pmd_set(mm, addr, pmdp, pmd) page_table_check_pmds_set(mm, addr, pmdp, pmd, 1)
include/linux/page_table_check.h
20
pmd_t pmd);
include/linux/page_table_check.h
26
pmd_t *pmdp, pmd_t pmd, unsigned int nr);
include/linux/page_table_check.h
31
pmd_t pmd);
include/linux/page_table_check.h
59
unsigned long addr, pmd_t pmd)
include/linux/page_table_check.h
64
__page_table_check_pmd_clear(mm, addr, pmd);
include/linux/page_table_check.h
87
unsigned long addr, pmd_t *pmdp, pmd_t pmd, unsigned int nr)
include/linux/page_table_check.h
92
__page_table_check_pmds_set(mm, addr, pmdp, pmd, nr);
include/linux/pagewalk.h
189
pmd_t pmd;
include/linux/pagewalk.h
77
int (*pmd_entry)(pmd_t *pmd, unsigned long addr,
include/linux/pgtable.h
1025
static inline pmd_t pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma)
include/linux/pgtable.h
1027
return pmd_mkwrite_novma(pmd);
include/linux/pgtable.h
104
#define __pte_map(pmd, address) \
include/linux/pgtable.h
105
((pte_t *)kmap_local_page(pmd_page(*(pmd))) + pte_index((address)))
include/linux/pgtable.h
111
static inline pte_t *__pte_map(pmd_t *pmd, unsigned long address)
include/linux/pgtable.h
113
return pte_offset_kernel(pmd, address);
include/linux/pgtable.h
1194
unsigned long address, pmd_t *pmdp, pmd_t pmd)
include/linux/pgtable.h
1197
set_pmd_at(vma->vm_mm, address, pmdp, pmd);
include/linux/pgtable.h
1253
#define pmd_access_permitted(pmd, write) \
include/linux/pgtable.h
1254
(pmd_present(pmd) && (!(write) || pmd_write(pmd)))
include/linux/pgtable.h
1481
static inline int pmd_none_or_clear_bad(pmd_t *pmd)
include/linux/pgtable.h
1483
if (pmd_none(*pmd))
include/linux/pgtable.h
1485
if (unlikely(pmd_bad(*pmd))) {
include/linux/pgtable.h
1486
pmd_clear_bad(pmd);
include/linux/pgtable.h
1749
static inline pmd_t pmd_swp_mksoft_dirty(pmd_t pmd)
include/linux/pgtable.h
1751
return pmd;
include/linux/pgtable.h
1754
static inline int pmd_swp_soft_dirty(pmd_t pmd)
include/linux/pgtable.h
1759
static inline pmd_t pmd_swp_clear_soft_dirty(pmd_t pmd)
include/linux/pgtable.h
1761
return pmd;
include/linux/pgtable.h
177
pmd_t *pmd = pmd_off_k(vaddr);
include/linux/pgtable.h
1770
static inline int pmd_soft_dirty(pmd_t pmd)
include/linux/pgtable.h
1780
static inline pmd_t pmd_mksoft_dirty(pmd_t pmd)
include/linux/pgtable.h
1782
return pmd;
include/linux/pgtable.h
179
return pmd_none(*pmd) ? NULL : pte_offset_kernel(pmd, vaddr);
include/linux/pgtable.h
1790
static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd)
include/linux/pgtable.h
1792
return pmd;
include/linux/pgtable.h
1810
static inline pmd_t pmd_swp_mksoft_dirty(pmd_t pmd)
include/linux/pgtable.h
1812
return pmd;
include/linux/pgtable.h
1815
static inline int pmd_swp_soft_dirty(pmd_t pmd)
include/linux/pgtable.h
1820
static inline pmd_t pmd_swp_clear_soft_dirty(pmd_t pmd)
include/linux/pgtable.h
1822
return pmd;
include/linux/pgtable.h
183
static inline int pmd_young(pmd_t pmd)
include/linux/pgtable.h
190
static inline int pmd_dirty(pmd_t pmd)
include/linux/pgtable.h
1959
static inline int pmd_trans_huge(pmd_t pmd)
include/linux/pgtable.h
1964
static inline int pmd_write(pmd_t pmd)
include/linux/pgtable.h
2022
static inline int pmd_protnone(pmd_t pmd)
include/linux/pgtable.h
2044
int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot);
include/linux/pgtable.h
2046
int pmd_clear_huge(pmd_t *pmd);
include/linux/pgtable.h
2049
int pmd_free_pte_page(pmd_t *pmd, unsigned long addr);
include/linux/pgtable.h
2059
static inline int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
include/linux/pgtable.h
2068
static inline int pmd_clear_huge(pmd_t *pmd)
include/linux/pgtable.h
2080
static inline int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
include/linux/pgtable.h
31
#define pmd_pgtable(pmd) pmd_page(pmd)
include/linux/pgtable.h
34
#define pmd_folio(pmd) page_folio(pmd_page(pmd))
include/linux/pgtable.h
514
pmd_t pmd = *pmdp;
include/linux/pgtable.h
516
if (!pmd_young(pmd))
include/linux/pgtable.h
519
set_pmd_at(vma->vm_mm, address, pmdp, pmd_mkold(pmd));
include/linux/pgtable.h
600
pmd_t pmd)
include/linux/pgtable.h
727
pmd_t pmd;
include/linux/pgtable.h
730
pmd.pmd_low = pmdp->pmd_low;
include/linux/pgtable.h
732
pmd.pmd_high = pmdp->pmd_high;
include/linux/pgtable.h
734
} while (unlikely(pmd.pmd_low != pmdp->pmd_low));
include/linux/pgtable.h
736
return pmd;
include/linux/pgtable.h
769
pmd_t pmd = *pmdp;
include/linux/pgtable.h
772
page_table_check_pmd_clear(mm, address, pmd);
include/linux/pgtable.h
774
return pmd;
include/linux/pgtable.h
96
static inline pte_t *pte_offset_kernel(pmd_t *pmd, unsigned long address)
include/linux/pgtable.h
98
return (pte_t *)pmd_page_vaddr(*pmd) + pte_index(address);
include/linux/ptdump.h
15
void (*note_page_pmd)(struct ptdump_state *st, unsigned long addr, pmd_t pmd);
include/linux/ptdump.h
21
void (*effective_prot_pmd)(struct ptdump_state *st, pmd_t pmd);
include/linux/rmap.h
870
pmd_t *pmd;
include/linux/rmap.h
907
WARN_ON_ONCE(!pvmw->pmd && !pvmw->pte);
include/linux/rmap.h
915
pvmw->pmd = NULL;
include/linux/swapops.h
216
extern void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd,
include/linux/swapops.h
235
static inline void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd,
include/linux/swapops.h
331
extern void pmd_migration_entry_wait(struct mm_struct *mm, pmd_t *pmd);
include/linux/userfaultfd_k.h
201
pmd_t pmd)
include/linux/userfaultfd_k.h
203
return userfaultfd_wp(vma) && pmd_uffd_wp(pmd);
include/linux/userfaultfd_k.h
374
pmd_t pmd)
include/trace/events/thp.h
30
TP_PROTO(unsigned long addr, unsigned long pmd),
include/trace/events/thp.h
31
TP_ARGS(addr, pmd)
include/trace/events/thp.h
62
TP_PROTO(unsigned long addr, unsigned long pmd, unsigned long clr, unsigned long set),
include/trace/events/thp.h
63
TP_ARGS(addr, pmd, clr, set)
include/trace/events/thp.h
74
TP_PROTO(unsigned long addr, unsigned long pmd),
include/trace/events/thp.h
76
TP_ARGS(addr, pmd),
include/trace/events/thp.h
80
__field(unsigned long, pmd)
include/trace/events/thp.h
85
__entry->pmd = pmd;
include/trace/events/thp.h
87
TP_printk("addr=%lx, pmd=%lx", __entry->addr, __entry->pmd)
include/trace/events/thp.h
91
TP_PROTO(unsigned long addr, unsigned long pmd),
include/trace/events/thp.h
92
TP_ARGS(addr, pmd)
include/trace/events/thp.h
96
TP_PROTO(unsigned long addr, unsigned long pmd),
include/trace/events/thp.h
97
TP_ARGS(addr, pmd)
include/trace/events/xen.h
166
__entry->pmdval = pmdval.pmd),
kernel/events/core.c
8419
pmd_t *pmdp, pmd;
kernel/events/core.c
8448
pmd = pmdp_get_lockless(pmdp);
kernel/events/core.c
8449
if (!pmd_present(pmd))
kernel/events/core.c
8452
if (pmd_leaf(pmd))
kernel/events/core.c
8453
return pmd_leaf_size(pmd);
kernel/events/core.c
8455
ptep = pte_offset_map(&pmd, addr);
kernel/events/core.c
8461
size = __pte_leaf_size(pmd, pte);
mm/damon/ops-common.c
166
damon_pmdp_mkold(pvmw.pmd, vma, addr);
mm/damon/ops-common.c
214
pmd_t pmd = pmdp_get(pvmw.pmd);
mm/damon/ops-common.c
216
*accessed = (pmd_present(pmd) && pmd_young(pmd)) ||
mm/damon/ops-common.c
75
void damon_pmdp_mkold(pmd_t *pmd, struct vm_area_struct *vma, unsigned long addr)
mm/damon/ops-common.c
78
pmd_t pmdval = pmdp_get(pmd);
mm/damon/ops-common.c
93
young |= pmdp_clear_young_notify(vma, addr, pmd);
mm/damon/ops-common.h
13
void damon_pmdp_mkold(pmd_t *pmd, struct vm_area_struct *vma, unsigned long addr);
mm/damon/vaddr.c
306
static int damon_mkold_pmd_entry(pmd_t *pmd, unsigned long addr,
mm/damon/vaddr.c
312
ptl = pmd_trans_huge_lock(pmd, walk->vma);
mm/damon/vaddr.c
314
pmd_t pmde = pmdp_get(pmd);
mm/damon/vaddr.c
317
damon_pmdp_mkold(pmd, walk->vma, addr);
mm/damon/vaddr.c
322
pte = pte_offset_map_lock(walk->mm, pmd, addr, &ptl);
mm/damon/vaddr.c
431
static int damon_young_pmd_entry(pmd_t *pmd, unsigned long addr,
mm/damon/vaddr.c
441
ptl = pmd_trans_huge_lock(pmd, walk->vma);
mm/damon/vaddr.c
443
pmd_t pmde = pmdp_get(pmd);
mm/damon/vaddr.c
461
pte = pte_offset_map_lock(walk->mm, pmd, addr, &ptl);
mm/damon/vaddr.c
700
static int damos_va_migrate_pmd_entry(pmd_t *pmd, unsigned long addr,
mm/damon/vaddr.c
713
ptl = pmd_trans_huge_lock(pmd, walk->vma);
mm/damon/vaddr.c
715
pmd_t pmde = pmdp_get(pmd);
mm/damon/vaddr.c
722
if (damos_va_filter_out(s, folio, walk->vma, addr, NULL, pmd))
mm/damon/vaddr.c
732
start_pte = pte = pte_offset_map_lock(walk->mm, pmd, addr, &ptl);
mm/damon/vaddr.c
863
static int damos_va_stat_pmd_entry(pmd_t *pmd, unsigned long addr,
mm/damon/vaddr.c
876
ptl = pmd_trans_huge_lock(pmd, vma);
mm/damon/vaddr.c
878
pmd_t pmde = pmdp_get(pmd);
mm/damon/vaddr.c
888
if (!damos_va_filter_out(s, folio, vma, addr, NULL, pmd))
mm/damon/vaddr.c
897
start_pte = pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
mm/debug_vm_pgtable.c
178
pmd_t pmd;
mm/debug_vm_pgtable.c
184
pmd = pfn_pmd(args->fixed_pmd_pfn, prot);
mm/debug_vm_pgtable.c
193
WARN_ON(pmd_dirty(pmd_wrprotect(pmd)));
mm/debug_vm_pgtable.c
196
WARN_ON(!pmd_same(pmd, pmd));
mm/debug_vm_pgtable.c
197
WARN_ON(!pmd_young(pmd_mkyoung(pmd_mkold(pmd))));
mm/debug_vm_pgtable.c
198
WARN_ON(!pmd_dirty(pmd_mkdirty(pmd_mkclean(pmd))));
mm/debug_vm_pgtable.c
199
WARN_ON(!pmd_write(pmd_mkwrite(pmd_wrprotect(pmd), args->vma)));
mm/debug_vm_pgtable.c
200
WARN_ON(pmd_young(pmd_mkold(pmd_mkyoung(pmd))));
mm/debug_vm_pgtable.c
201
WARN_ON(pmd_dirty(pmd_mkclean(pmd_mkdirty(pmd))));
mm/debug_vm_pgtable.c
202
WARN_ON(pmd_write(pmd_wrprotect(pmd_mkwrite(pmd, args->vma))));
mm/debug_vm_pgtable.c
203
WARN_ON(pmd_dirty(pmd_wrprotect(pmd_mkclean(pmd))));
mm/debug_vm_pgtable.c
204
WARN_ON(!pmd_dirty(pmd_wrprotect(pmd_mkdirty(pmd))));
mm/debug_vm_pgtable.c
206
WARN_ON(!pmd_dirty(pmd_mkwrite_novma(pmd_mkdirty(pmd))));
mm/debug_vm_pgtable.c
207
WARN_ON(pmd_dirty(pmd_mkwrite_novma(pmd_mkclean(pmd))));
mm/debug_vm_pgtable.c
208
WARN_ON(!pmd_write(pmd_mkdirty(pmd_mkwrite_novma(pmd))));
mm/debug_vm_pgtable.c
209
WARN_ON(!pmd_write(pmd_mkwrite_novma(pmd_wrprotect(pmd))));
mm/debug_vm_pgtable.c
210
WARN_ON(pmd_write(pmd_wrprotect(pmd_mkwrite_novma(pmd))));
mm/debug_vm_pgtable.c
216
WARN_ON(!pmd_bad(pmd_mkhuge(pmd)));
mm/debug_vm_pgtable.c
222
pmd_t pmd;
mm/debug_vm_pgtable.c
245
pmd = pfn_pmd(args->pmd_pfn, args->page_prot);
mm/debug_vm_pgtable.c
246
set_pmd_at(args->mm, vaddr, args->pmdp, pmd);
mm/debug_vm_pgtable.c
249
pmd = pmdp_get(args->pmdp);
mm/debug_vm_pgtable.c
250
WARN_ON(pmd_write(pmd));
mm/debug_vm_pgtable.c
252
pmd = pmdp_get(args->pmdp);
mm/debug_vm_pgtable.c
253
WARN_ON(!pmd_none(pmd));
mm/debug_vm_pgtable.c
255
pmd = pfn_pmd(args->pmd_pfn, args->page_prot);
mm/debug_vm_pgtable.c
256
pmd = pmd_wrprotect(pmd);
mm/debug_vm_pgtable.c
257
pmd = pmd_mkclean(pmd);
mm/debug_vm_pgtable.c
258
set_pmd_at(args->mm, vaddr, args->pmdp, pmd);
mm/debug_vm_pgtable.c
260
pmd = pmd_mkwrite(pmd, args->vma);
mm/debug_vm_pgtable.c
261
pmd = pmd_mkdirty(pmd);
mm/debug_vm_pgtable.c
262
pmdp_set_access_flags(args->vma, vaddr, args->pmdp, pmd, 1);
mm/debug_vm_pgtable.c
263
pmd = pmdp_get(args->pmdp);
mm/debug_vm_pgtable.c
264
WARN_ON(!(pmd_write(pmd) && pmd_dirty(pmd)));
mm/debug_vm_pgtable.c
266
pmd = pmdp_get(args->pmdp);
mm/debug_vm_pgtable.c
267
WARN_ON(!pmd_none(pmd));
mm/debug_vm_pgtable.c
269
pmd = pmd_mkhuge(pfn_pmd(args->pmd_pfn, args->page_prot));
mm/debug_vm_pgtable.c
270
pmd = pmd_mkyoung(pmd);
mm/debug_vm_pgtable.c
271
set_pmd_at(args->mm, vaddr, args->pmdp, pmd);
mm/debug_vm_pgtable.c
274
pmd = pmdp_get(args->pmdp);
mm/debug_vm_pgtable.c
275
WARN_ON(pmd_young(pmd));
mm/debug_vm_pgtable.c
284
pmd_t pmd;
mm/debug_vm_pgtable.c
290
pmd = pfn_pmd(args->fixed_pmd_pfn, args->page_prot);
mm/debug_vm_pgtable.c
295
pmd = pmd_mkhuge(pmd);
mm/debug_vm_pgtable.c
296
WARN_ON(!pmd_leaf(pmd));
mm/debug_vm_pgtable.c
437
pmd_t pmd;
mm/debug_vm_pgtable.c
451
pmd = pmdp_get(args->pmdp);
mm/debug_vm_pgtable.c
452
WARN_ON(!pmd_none(pmd));
mm/debug_vm_pgtable.c
637
pmd_t pmd = pmdp_get(args->pmdp);
mm/debug_vm_pgtable.c
640
WARN_ON(pmd_none(pmd));
mm/debug_vm_pgtable.c
642
pmd = pmdp_get(args->pmdp);
mm/debug_vm_pgtable.c
643
WARN_ON(!pmd_none(pmd));
mm/debug_vm_pgtable.c
648
pmd_t pmd;
mm/debug_vm_pgtable.c
656
pmd = pmdp_get(args->pmdp);
mm/debug_vm_pgtable.c
657
WARN_ON(pmd_bad(pmd));
mm/debug_vm_pgtable.c
686
pmd_t pmd;
mm/debug_vm_pgtable.c
695
pmd = pmd_mkhuge(pfn_pmd(args->fixed_pmd_pfn, args->page_prot_none));
mm/debug_vm_pgtable.c
696
WARN_ON(!pmd_protnone(pmd));
mm/debug_vm_pgtable.c
697
WARN_ON(!pmd_present(pmd));
mm/debug_vm_pgtable.c
735
pmd_t pmd;
mm/debug_vm_pgtable.c
744
pmd = pfn_pmd(args->fixed_pmd_pfn, args->page_prot);
mm/debug_vm_pgtable.c
745
WARN_ON(!pmd_soft_dirty(pmd_mksoft_dirty(pmd)));
mm/debug_vm_pgtable.c
746
WARN_ON(pmd_soft_dirty(pmd_clear_soft_dirty(pmd)));
mm/debug_vm_pgtable.c
751
pmd_t pmd;
mm/debug_vm_pgtable.c
761
pmd = swp_entry_to_pmd(args->leaf_entry);
mm/debug_vm_pgtable.c
762
WARN_ON(!pmd_is_huge(pmd));
mm/debug_vm_pgtable.c
763
WARN_ON(!pmd_is_valid_softleaf(pmd));
mm/debug_vm_pgtable.c
765
WARN_ON(!pmd_swp_soft_dirty(pmd_swp_mksoft_dirty(pmd)));
mm/debug_vm_pgtable.c
766
WARN_ON(pmd_swp_soft_dirty(pmd_swp_clear_soft_dirty(pmd)));
mm/debug_vm_pgtable.c
907
pmd_t pmd;
mm/debug_vm_pgtable.c
924
pmd = pfn_pmd(args->fixed_pmd_pfn, args->page_prot);
mm/debug_vm_pgtable.c
925
WARN_ON(!pmd_trans_huge(pmd_mkhuge(pmd)));
mm/debug_vm_pgtable.c
928
WARN_ON(!pmd_trans_huge(pmd_mkinvalid(pmd_mkhuge(pmd))));
mm/debug_vm_pgtable.c
929
WARN_ON(!pmd_present(pmd_mkinvalid(pmd_mkhuge(pmd))));
mm/debug_vm_pgtable.c
930
WARN_ON(!pmd_leaf(pmd_mkinvalid(pmd_mkhuge(pmd))));
mm/filemap.c
3472
ptep = pte_offset_map_ro_nolock(vma->vm_mm, vmf->pmd, vmf->address,
mm/filemap.c
3679
if (pmd_trans_huge(*vmf->pmd)) {
mm/filemap.c
3685
if (pmd_none(*vmf->pmd) && folio_test_pmd_mappable(folio)) {
mm/filemap.c
3695
if (pmd_none(*vmf->pmd) && vmf->prealloc_pte)
mm/filemap.c
3696
pmd_install(mm, vmf->pmd, &vmf->prealloc_pte);
mm/filemap.c
3913
vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, addr, &vmf->ptl);
mm/gup.c
1037
pmd_t *pmd;
mm/gup.c
1054
pmd = pmd_offset(pud, address);
mm/gup.c
1055
if (!pmd_present(*pmd))
mm/gup.c
1057
pte = pte_offset_map(pmd, address);
mm/gup.c
2829
static int gup_fast_pte_range(pmd_t pmd, pmd_t *pmdp, unsigned long addr,
mm/gup.c
2836
ptem = ptep = pte_offset_map(&pmd, addr);
mm/gup.c
2868
if (unlikely(pmd_val(pmd) != pmd_val(*pmdp)) ||
mm/gup.c
2916
static int gup_fast_pte_range(pmd_t pmd, pmd_t *pmdp, unsigned long addr,
mm/gup.c
3020
pmd_t pmd = pmdp_get_lockless(pmdp);
mm/gup.c
3023
if (!pmd_present(pmd))
mm/gup.c
3026
if (unlikely(pmd_leaf(pmd))) {
mm/gup.c
3028
if (pmd_protnone(pmd))
mm/gup.c
3031
if (!gup_fast_pmd_leaf(pmd, pmdp, addr, next, flags,
mm/gup.c
3035
} else if (!gup_fast_pte_range(pmd, pmdp, addr, next, flags,
mm/gup.c
684
static inline bool can_follow_write_pmd(pmd_t pmd, struct page *page,
mm/gup.c
689
if (pmd_write(pmd))
mm/gup.c
696
if (pmd_needs_soft_dirty_wp(vma, pmd))
mm/gup.c
698
return !userfaultfd_huge_pmd_wp(vma, pmd);
mm/gup.c
702
unsigned long addr, pmd_t *pmd,
mm/gup.c
707
pmd_t pmdval = *pmd;
mm/gup.c
711
assert_spin_locked(pmd_lockptr(mm, pmd));
mm/gup.c
722
if (pmd_protnone(*pmd) && !gup_can_follow_protnone(vma, flags))
mm/gup.c
737
touch_pmd(vma, addr, pmd, flags & FOLL_WRITE);
mm/gup.c
755
unsigned long addr, pmd_t *pmd,
mm/gup.c
803
unsigned long address, pmd_t *pmd, unsigned int flags)
mm/gup.c
812
ptep = pte_offset_map_lock(mm, pmd, address, &ptl);
mm/gup.c
903
pmd_t *pmd, pmdval;
mm/gup.c
908
pmd = pmd_offset(pudp, address);
mm/gup.c
909
pmdval = pmdp_get_lockless(pmd);
mm/gup.c
915
return follow_page_pte(vma, address, pmd, flags);
mm/gup.c
920
ptl = pmd_lock(mm, pmd);
mm/gup.c
921
pmdval = *pmd;
mm/gup.c
928
return follow_page_pte(vma, address, pmd, flags);
mm/gup.c
932
split_huge_pmd(vma, pmd, address);
mm/gup.c
934
return pte_alloc(mm, pmd) ? ERR_PTR(-ENOMEM) :
mm/gup.c
935
follow_page_pte(vma, address, pmd, flags);
mm/gup.c
937
page = follow_huge_pmd(vma, address, pmd, flags, page_mask);
mm/hmm.c
188
pmd_t pmd)
mm/hmm.c
190
if (pmd_protnone(pmd))
mm/hmm.c
192
return (pmd_write(pmd) ? (HMM_PFN_VALID | HMM_PFN_WRITE) :
mm/hmm.c
199
pmd_t pmd)
mm/hmm.c
208
cpu_flags = pmd_to_hmm_pfn_flags(range, pmd);
mm/hmm.c
214
pfn = pmd_pfn(pmd) + ((addr & ~PMD_MASK) >> PAGE_SHIFT);
mm/hmm.c
224
unsigned long end, unsigned long hmm_pfns[], pmd_t pmd);
mm/hmm.c
337
pmd_t pmd)
mm/hmm.c
342
const softleaf_t entry = softleaf_from_pmd(pmd);
mm/hmm.c
384
pmd_t pmd)
mm/hmm.c
408
pmd_t pmd;
mm/hmm.c
411
pmd = pmdp_get_lockless(pmdp);
mm/hmm.c
412
if (pmd_none(pmd))
mm/hmm.c
415
if (thp_migration_supported() && pmd_is_migration_entry(pmd)) {
mm/hmm.c
424
if (!pmd_present(pmd))
mm/hmm.c
426
pmd);
mm/hmm.c
428
if (pmd_trans_huge(pmd)) {
mm/hmm.c
438
pmd = pmdp_get_lockless(pmdp);
mm/hmm.c
439
if (!pmd_trans_huge(pmd))
mm/hmm.c
442
return hmm_vma_handle_pmd(walk, addr, end, hmm_pfns, pmd);
mm/hmm.c
451
if (pmd_bad(pmd)) {
mm/huge_memory.c
1076
pmd_t maybe_pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma)
mm/huge_memory.c
1079
pmd = pmd_mkwrite(pmd, vma);
mm/huge_memory.c
1080
return pmd;
mm/huge_memory.c
1299
void map_anon_folio_pmd_nopf(struct folio *folio, pmd_t *pmd,
mm/huge_memory.c
1308
set_pmd_at(vma->vm_mm, haddr, pmd, entry);
mm/huge_memory.c
1309
update_mmu_cache_pmd(vma, haddr, pmd);
mm/huge_memory.c
1313
static void map_anon_folio_pmd_pf(struct folio *folio, pmd_t *pmd,
mm/huge_memory.c
1316
map_anon_folio_pmd_nopf(folio, pmd, vma, haddr);
mm/huge_memory.c
1341
vmf->ptl = pmd_lock(vma->vm_mm, vmf->pmd);
mm/huge_memory.c
1342
if (unlikely(!pmd_none(*vmf->pmd))) {
mm/huge_memory.c
1358
pgtable_trans_huge_deposit(vma->vm_mm, vmf->pmd, pgtable);
mm/huge_memory.c
1359
map_anon_folio_pmd_pf(folio, vmf->pmd, vma, haddr);
mm/huge_memory.c
1389
ptl = pmd_lock(vma->vm_mm, vmf->pmd);
mm/huge_memory.c
1390
if (unlikely(!pmd_same(*vmf->pmd, vmf->orig_pmd))) {
mm/huge_memory.c
1450
struct vm_area_struct *vma, unsigned long haddr, pmd_t *pmd,
mm/huge_memory.c
1456
pgtable_trans_huge_deposit(mm, pmd, pgtable);
mm/huge_memory.c
1457
set_pmd_at(mm, haddr, pmd, entry);
mm/huge_memory.c
1490
vmf->ptl = pmd_lock(vma->vm_mm, vmf->pmd);
mm/huge_memory.c
1492
if (pmd_none(*vmf->pmd)) {
mm/huge_memory.c
1504
haddr, vmf->pmd, zero_folio);
mm/huge_memory.c
1505
update_mmu_cache_pmd(vma, vmf->address, vmf->pmd);
mm/huge_memory.c
1527
pmd_t *pmd, struct folio_or_pfn fop, pgprot_t prot,
mm/huge_memory.c
1544
ptl = pmd_lock(mm, pmd);
mm/huge_memory.c
1545
if (!pmd_none(*pmd)) {
mm/huge_memory.c
1550
if (pmd_pfn(*pmd) != pfn) {
mm/huge_memory.c
1551
WARN_ON_ONCE(!is_huge_zero_pmd(*pmd));
mm/huge_memory.c
1554
entry = pmd_mkyoung(*pmd);
mm/huge_memory.c
1556
if (pmdp_set_access_flags(vma, addr, pmd, entry, 1))
mm/huge_memory.c
1557
update_mmu_cache_pmd(vma, addr, pmd);
mm/huge_memory.c
1582
pgtable_trans_huge_deposit(mm, pmd, pgtable);
mm/huge_memory.c
1587
set_pmd_at(mm, addr, pmd, entry);
mm/huge_memory.c
1588
update_mmu_cache_pmd(vma, addr, pmd);
mm/huge_memory.c
1629
return insert_pmd(vma, addr, vmf->pmd, fop, pgprot, write);
mm/huge_memory.c
1646
return insert_pmd(vma, addr, vmf->pmd, fop, vma->vm_page_prot, write);
mm/huge_memory.c
1777
pmd_t *pmd, bool write)
mm/huge_memory.c
1781
entry = pmd_mkyoung(*pmd);
mm/huge_memory.c
1785
pmd, entry, write)) {
mm/huge_memory.c
1786
update_mmu_cache_pmd(vma, addr, pmd);
mm/huge_memory.c
1797
pmd_t pmd, pgtable_t pgtable)
mm/huge_memory.c
1799
softleaf_t entry = softleaf_from_pmd(pmd);
mm/huge_memory.c
1802
VM_WARN_ON_ONCE(!pmd_is_valid_softleaf(pmd));
mm/huge_memory.c
1807
pmd = swp_entry_to_pmd(entry);
mm/huge_memory.c
1809
pmd = pmd_swp_mksoft_dirty(pmd);
mm/huge_memory.c
1811
pmd = pmd_swp_mkuffd_wp(pmd);
mm/huge_memory.c
1812
set_pmd_at(src_mm, addr, src_pmd, pmd);
mm/huge_memory.c
1820
pmd = swp_entry_to_pmd(entry);
mm/huge_memory.c
1823
pmd = pmd_swp_mksoft_dirty(pmd);
mm/huge_memory.c
1825
pmd = pmd_swp_mkuffd_wp(pmd);
mm/huge_memory.c
1826
set_pmd_at(src_mm, addr, src_pmd, pmd);
mm/huge_memory.c
1845
pmd = pmd_swp_clear_uffd_wp(pmd);
mm/huge_memory.c
1846
set_pmd_at(dst_mm, addr, dst_pmd, pmd);
mm/huge_memory.c
1856
pmd_t pmd;
mm/huge_memory.c
1860
pmd = pmdp_get_lockless(src_pmd);
mm/huge_memory.c
1861
if (unlikely(pmd_present(pmd) && pmd_special(pmd) &&
mm/huge_memory.c
1862
!is_huge_zero_pmd(pmd))) {
mm/huge_memory.c
1875
VM_WARN_ON_ONCE(is_cow_mapping(src_vma->vm_flags) && pmd_write(pmd));
mm/huge_memory.c
1892
pmd = *src_pmd;
mm/huge_memory.c
1895
pmd_is_valid_softleaf(pmd))) {
mm/huge_memory.c
1897
dst_vma, src_vma, pmd, pgtable);
mm/huge_memory.c
1902
if (unlikely(!pmd_trans_huge(pmd))) {
mm/huge_memory.c
1911
if (is_huge_zero_pmd(pmd)) {
mm/huge_memory.c
1921
src_page = pmd_page(pmd);
mm/huge_memory.c
1941
pmd = pmd_clear_uffd_wp(pmd);
mm/huge_memory.c
1942
pmd = pmd_wrprotect(pmd);
mm/huge_memory.c
1944
pmd = pmd_mkold(pmd);
mm/huge_memory.c
1945
set_pmd_at(dst_mm, addr, dst_pmd, pmd);
mm/huge_memory.c
2022
if (unlikely(!pmd_same(*vmf->pmd, vmf->orig_pmd)))
mm/huge_memory.c
2025
return touch_pmd(vmf->vma, vmf->address, vmf->pmd, write);
mm/huge_memory.c
2043
vmf->ptl = pmd_lock(vma->vm_mm, vmf->pmd);
mm/huge_memory.c
2044
if (unlikely(!pmd_same(pmdp_get(vmf->pmd), vmf->orig_pmd)))
mm/huge_memory.c
2049
(void)pmdp_huge_clear_flush(vma, haddr, vmf->pmd);
mm/huge_memory.c
2050
map_anon_folio_pmd_pf(folio, vmf->pmd, vma, haddr);
mm/huge_memory.c
2069
vmf->ptl = pmd_lockptr(vma->vm_mm, vmf->pmd);
mm/huge_memory.c
2084
if (unlikely(!pmd_same(*vmf->pmd, orig_pmd))) {
mm/huge_memory.c
2102
if (unlikely(!pmd_same(*vmf->pmd, orig_pmd))) {
mm/huge_memory.c
2140
if (pmdp_set_access_flags(vma, haddr, vmf->pmd, entry, 1))
mm/huge_memory.c
2141
update_mmu_cache_pmd(vma, vmf->address, vmf->pmd);
mm/huge_memory.c
2150
__split_huge_pmd(vma, vmf->pmd, vmf->address, false);
mm/huge_memory.c
2155
unsigned long addr, pmd_t pmd)
mm/huge_memory.c
2163
if (pmd_protnone(pmd))
mm/huge_memory.c
2167
if (pmd_needs_soft_dirty_wp(vma, pmd))
mm/huge_memory.c
2171
if (userfaultfd_huge_pmd_wp(vma, pmd))
mm/huge_memory.c
2176
page = vm_normal_page_pmd(vma, addr, pmd);
mm/huge_memory.c
2181
return pmd_dirty(pmd);
mm/huge_memory.c
2192
pmd_t pmd, old_pmd;
mm/huge_memory.c
2196
vmf->ptl = pmd_lock(vma->vm_mm, vmf->pmd);
mm/huge_memory.c
2197
old_pmd = pmdp_get(vmf->pmd);
mm/huge_memory.c
2204
pmd = pmd_modify(old_pmd, vma->vm_page_prot);
mm/huge_memory.c
2210
writable = pmd_write(pmd);
mm/huge_memory.c
2212
can_change_pmd_writable(vma, vmf->address, pmd))
mm/huge_memory.c
2215
folio = vm_normal_folio_pmd(vma, haddr, pmd);
mm/huge_memory.c
2241
vmf->ptl = pmd_lock(vma->vm_mm, vmf->pmd);
mm/huge_memory.c
2242
if (unlikely(!pmd_same(pmdp_get(vmf->pmd), vmf->orig_pmd))) {
mm/huge_memory.c
2248
pmd = pmd_modify(pmdp_get(vmf->pmd), vma->vm_page_prot);
mm/huge_memory.c
2249
pmd = pmd_mkyoung(pmd);
mm/huge_memory.c
2251
pmd = pmd_mkwrite(pmd, vma);
mm/huge_memory.c
2252
set_pmd_at(vma->vm_mm, haddr, vmf->pmd, pmd);
mm/huge_memory.c
2253
update_mmu_cache_pmd(vma, vmf->address, vmf->pmd);
mm/huge_memory.c
2266
pmd_t *pmd, unsigned long addr, unsigned long next)
mm/huge_memory.c
2276
ptl = pmd_trans_huge_lock(pmd, vma);
mm/huge_memory.c
2280
orig_pmd = *pmd;
mm/huge_memory.c
2319
pmdp_invalidate(vma, addr, pmd);
mm/huge_memory.c
2323
set_pmd_at(mm, addr, pmd, orig_pmd);
mm/huge_memory.c
2324
tlb_remove_pmd_tlb_entry(tlb, pmd, addr);
mm/huge_memory.c
2335
static inline void zap_deposited_table(struct mm_struct *mm, pmd_t *pmd)
mm/huge_memory.c
2339
pgtable = pgtable_trans_huge_withdraw(mm, pmd);
mm/huge_memory.c
2345
pmd_t *pmd, unsigned long addr)
mm/huge_memory.c
2352
ptl = __pmd_trans_huge_lock(pmd, vma);
mm/huge_memory.c
2361
orig_pmd = pmdp_huge_get_and_clear_full(vma, addr, pmd,
mm/huge_memory.c
2364
tlb_remove_pmd_tlb_entry(tlb, pmd, addr);
mm/huge_memory.c
2367
zap_deposited_table(tlb->mm, pmd);
mm/huge_memory.c
2371
zap_deposited_table(tlb->mm, pmd);
mm/huge_memory.c
2395
zap_deposited_table(tlb->mm, pmd);
mm/huge_memory.c
2399
zap_deposited_table(tlb->mm, pmd);
mm/huge_memory.c
2440
static pmd_t move_soft_dirty_pmd(pmd_t pmd)
mm/huge_memory.c
2443
if (unlikely(pmd_is_migration_entry(pmd)))
mm/huge_memory.c
2444
pmd = pmd_swp_mksoft_dirty(pmd);
mm/huge_memory.c
2445
else if (pmd_present(pmd))
mm/huge_memory.c
2446
pmd = pmd_mksoft_dirty(pmd);
mm/huge_memory.c
2449
return pmd;
mm/huge_memory.c
2452
static pmd_t clear_uffd_wp_pmd(pmd_t pmd)
mm/huge_memory.c
2454
if (pmd_none(pmd))
mm/huge_memory.c
2455
return pmd;
mm/huge_memory.c
2456
if (pmd_present(pmd))
mm/huge_memory.c
2457
pmd = pmd_clear_uffd_wp(pmd);
mm/huge_memory.c
2459
pmd = pmd_swp_clear_uffd_wp(pmd);
mm/huge_memory.c
2461
return pmd;
mm/huge_memory.c
2468
pmd_t pmd;
mm/huge_memory.c
2491
pmd = pmdp_huge_get_and_clear(mm, old_addr, old_pmd);
mm/huge_memory.c
2492
if (pmd_present(pmd))
mm/huge_memory.c
2501
pmd = move_soft_dirty_pmd(pmd);
mm/huge_memory.c
2503
pmd = clear_uffd_wp_pmd(pmd);
mm/huge_memory.c
2504
set_pmd_at(mm, new_addr, new_pmd, pmd);
mm/huge_memory.c
2516
unsigned long addr, pmd_t *pmd, bool uffd_wp,
mm/huge_memory.c
2519
softleaf_t entry = softleaf_from_pmd(*pmd);
mm/huge_memory.c
2523
VM_WARN_ON(!pmd_is_valid_softleaf(*pmd));
mm/huge_memory.c
2534
if (pmd_swp_soft_dirty(*pmd))
mm/huge_memory.c
2540
newpmd = *pmd;
mm/huge_memory.c
2547
if (!pmd_same(*pmd, newpmd))
mm/huge_memory.c
2548
set_pmd_at(mm, addr, pmd, newpmd);
mm/huge_memory.c
2559
pmd_t *pmd, unsigned long addr, pgprot_t newprot,
mm/huge_memory.c
2575
ptl = __pmd_trans_huge_lock(pmd, vma);
mm/huge_memory.c
2579
if (thp_migration_supported() && pmd_is_valid_softleaf(*pmd)) {
mm/huge_memory.c
2580
change_non_present_huge_pmd(mm, addr, pmd, uffd_wp,
mm/huge_memory.c
2592
if (is_huge_zero_pmd(*pmd))
mm/huge_memory.c
2595
if (pmd_protnone(*pmd))
mm/huge_memory.c
2598
if (!folio_can_map_prot_numa(pmd_folio(*pmd), vma,
mm/huge_memory.c
2623
oldpmd = pmdp_invalidate_ad(vma, addr, pmd);
mm/huge_memory.c
2642
set_pmd_at(mm, addr, pmd, entry);
mm/huge_memory.c
2825
spinlock_t *__pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma)
mm/huge_memory.c
2829
ptl = pmd_lock(vma->vm_mm, pmd);
mm/huge_memory.c
2830
if (likely(pmd_is_huge(*pmd)))
mm/huge_memory.c
2948
unsigned long haddr, pmd_t *pmd)
mm/huge_memory.c
2965
old_pmd = pmdp_huge_clear_flush(vma, haddr, pmd);
mm/huge_memory.c
2967
pgtable = pgtable_trans_huge_withdraw(mm, pmd);
mm/huge_memory.c
2985
pmd_populate(mm, pmd, pgtable);
mm/huge_memory.c
2988
static void __split_huge_pmd_locked(struct vm_area_struct *vma, pmd_t *pmd,
mm/huge_memory.c
3006
VM_WARN_ON_ONCE(!pmd_is_valid_softleaf(*pmd) && !pmd_trans_huge(*pmd));
mm/huge_memory.c
3011
old_pmd = pmdp_huge_clear_flush(vma, haddr, pmd);
mm/huge_memory.c
3017
zap_deposited_table(mm, pmd);
mm/huge_memory.c
3040
if (is_huge_zero_pmd(*pmd)) {
mm/huge_memory.c
3050
return __split_huge_zero_page_pmd(vma, haddr, pmd);
mm/huge_memory.c
3053
if (pmd_is_migration_entry(*pmd)) {
mm/huge_memory.c
3056
old_pmd = *pmd;
mm/huge_memory.c
3069
} else if (pmd_is_device_private_entry(*pmd)) {
mm/huge_memory.c
3072
old_pmd = *pmd;
mm/huge_memory.c
3125
old_pmd = pmdp_invalidate(vma, haddr, pmd);
mm/huge_memory.c
3174
pgtable = pgtable_trans_huge_withdraw(mm, pmd);
mm/huge_memory.c
3260
if (!pmd_is_migration_entry(*pmd))
mm/huge_memory.c
3266
pmd_populate(mm, pmd, pgtable);
mm/huge_memory.c
3270
pmd_t *pmd, bool freeze)
mm/huge_memory.c
3273
if (pmd_trans_huge(*pmd) || pmd_is_valid_softleaf(*pmd))
mm/huge_memory.c
3274
__split_huge_pmd_locked(vma, pmd, address, freeze);
mm/huge_memory.c
3277
void __split_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,
mm/huge_memory.c
3287
ptl = pmd_lock(vma->vm_mm, pmd);
mm/huge_memory.c
3288
split_huge_pmd_locked(vma, range.start, pmd, freeze);
mm/huge_memory.c
3296
pmd_t *pmd = mm_find_pmd(vma->vm_mm, address);
mm/huge_memory.c
3298
if (!pmd)
mm/huge_memory.c
3301
__split_huge_pmd(vma, pmd, address, freeze);
mm/huge_memory.c
4874
if (!(pvmw->pmd && !pvmw->pte))
mm/huge_memory.c
4878
if (unlikely(!pmd_present(*pvmw->pmd)))
mm/huge_memory.c
4879
pmdval = pmdp_huge_get_and_clear(vma->vm_mm, address, pvmw->pmd);
mm/huge_memory.c
4881
pmdval = pmdp_invalidate(vma, address, pvmw->pmd);
mm/huge_memory.c
4886
set_pmd_at(mm, address, pvmw->pmd, pmdval);
mm/huge_memory.c
4907
set_pmd_at(mm, address, pvmw->pmd, pmdswp);
mm/huge_memory.c
4925
if (!(pvmw->pmd && !pvmw->pte))
mm/huge_memory.c
4928
entry = softleaf_from_pmd(*pvmw->pmd);
mm/huge_memory.c
4932
if (pmd_swp_soft_dirty(*pvmw->pmd))
mm/huge_memory.c
4936
if (pmd_swp_uffd_wp(*pvmw->pmd))
mm/huge_memory.c
4955
if (pmd_swp_soft_dirty(*pvmw->pmd))
mm/huge_memory.c
4957
if (pmd_swp_uffd_wp(*pvmw->pmd))
mm/huge_memory.c
4972
set_pmd_at(mm, haddr, pvmw->pmd, pmde);
mm/huge_memory.c
4975
update_mmu_cache_pmd(vma, address, pvmw->pmd);
mm/hugetlb.c
7064
pmd_t *pmd;
mm/hugetlb.c
7081
pmd = pmd_offset(pud, addr);
mm/hugetlb.c
7083
return (pte_t *)pmd;
mm/hugetlb_vmemmap.c
110
head = pmd_leaf(*pmd) ? pmd_page(*pmd) : NULL;
mm/hugetlb_vmemmap.c
127
pte_page(ptep_get(pte_offset_kernel(pmd, addr)));
mm/hugetlb_vmemmap.c
136
return vmemmap_split_pmd(pmd, head, addr & PMD_MASK, vmemmap_walk);
mm/hugetlb_vmemmap.c
52
static int vmemmap_split_pmd(pmd_t *pmd, struct page *head, unsigned long start,
mm/hugetlb_vmemmap.c
76
if (likely(pmd_leaf(*pmd))) {
mm/hugetlb_vmemmap.c
87
pmd_populate_kernel(&init_mm, pmd, pgtable);
mm/hugetlb_vmemmap.c
98
static int vmemmap_pmd_entry(pmd_t *pmd, unsigned long addr,
mm/internal.h
1148
extern pmd_t maybe_pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma);
mm/internal.h
1506
pmd_t *pmd, bool write);
mm/internal.h
1647
static inline bool pmd_needs_soft_dirty_wp(struct vm_area_struct *vma, pmd_t pmd)
mm/internal.h
1649
return vma_soft_dirty_enabled(vma) && !pmd_soft_dirty(pmd);
mm/internal.h
517
void pmd_install(struct mm_struct *mm, pmd_t *pmd, pgtable_t *pte);
mm/kasan/init.c
105
pte = pte_offset_kernel(pmd, addr);
mm/kasan/init.c
112
pmd_t *pmd = pmd_offset(pud, addr);
mm/kasan/init.c
119
pmd_populate_kernel(&init_mm, pmd,
mm/kasan/init.c
124
if (pmd_none(*pmd)) {
mm/kasan/init.c
136
pmd_populate_kernel(&init_mm, pmd, p);
mm/kasan/init.c
138
zero_pte_populate(pmd, addr, next);
mm/kasan/init.c
139
} while (pmd++, addr = next, addr != end);
mm/kasan/init.c
153
pmd_t *pmd;
mm/kasan/init.c
157
pmd = pmd_offset(pud, addr);
mm/kasan/init.c
158
pmd_populate_kernel(&init_mm, pmd,
mm/kasan/init.c
192
pmd_t *pmd;
mm/kasan/init.c
199
pmd = pmd_offset(pud, addr);
mm/kasan/init.c
200
pmd_populate_kernel(&init_mm, pmd,
mm/kasan/init.c
244
pmd_t *pmd;
mm/kasan/init.c
262
pmd = pmd_offset(pud, addr);
mm/kasan/init.c
263
pmd_populate_kernel(&init_mm, pmd,
mm/kasan/init.c
284
static void kasan_free_pte(pte_t *pte_start, pmd_t *pmd)
mm/kasan/init.c
295
pte_free_kernel(&init_mm, (pte_t *)page_to_virt(pmd_page(*pmd)));
mm/kasan/init.c
296
pmd_clear(pmd);
mm/kasan/init.c
301
pmd_t *pmd;
mm/kasan/init.c
305
pmd = pmd_start + i;
mm/kasan/init.c
306
if (!pmd_none(*pmd))
mm/kasan/init.c
366
static void kasan_remove_pmd_table(pmd_t *pmd, unsigned long addr,
mm/kasan/init.c
371
for (; addr < end; addr = next, pmd++) {
mm/kasan/init.c
376
if (!pmd_present(*pmd))
mm/kasan/init.c
379
if (kasan_pte_table(*pmd)) {
mm/kasan/init.c
382
pmd_clear(pmd);
mm/kasan/init.c
386
pte = pte_offset_kernel(pmd, addr);
mm/kasan/init.c
388
kasan_free_pte(pte_offset_kernel(pmd, 0), pmd);
mm/kasan/init.c
398
pmd_t *pmd, *pmd_base;
mm/kasan/init.c
412
pmd = pmd_offset(pud, addr);
mm/kasan/init.c
414
kasan_remove_pmd_table(pmd, addr, next);
mm/kasan/init.c
70
static inline bool kasan_pte_table(pmd_t pmd)
mm/kasan/init.c
72
return pmd_page(pmd) == virt_to_page(lm_alias(kasan_early_shadow_pte));
mm/kasan/init.c
92
static void __ref zero_pte_populate(pmd_t *pmd, unsigned long addr,
mm/kasan/init.c
95
pte_t *pte = pte_offset_kernel(pmd, addr);
mm/kasan/shadow.c
191
pmd_t *pmd;
mm/kasan/shadow.c
204
pmd = pmd_offset(pud, addr);
mm/kasan/shadow.c
205
if (pmd_none(*pmd))
mm/kasan/shadow.c
207
if (pmd_leaf(*pmd))
mm/kasan/shadow.c
209
pte = pte_offset_kernel(pmd, addr);
mm/khugepaged.c
1082
pmd_t *pmd, _pmd;
mm/khugepaged.c
1112
result = find_pmd_or_thp_or_none(mm, address, &pmd);
mm/khugepaged.c
1124
result = __collapse_huge_page_swapin(mm, vma, address, pmd,
mm/khugepaged.c
1145
result = check_pmd_still_valid(mm, address, pmd);
mm/khugepaged.c
1155
pmd_ptl = pmd_lock(mm, pmd); /* probably unnecessary */
mm/khugepaged.c
1164
_pmd = pmdp_collapse_flush(vma, address, pmd);
mm/khugepaged.c
1182
BUG_ON(!pmd_none(*pmd));
mm/khugepaged.c
1188
pmd_populate(mm, pmd, pmd_pgtable(_pmd));
mm/khugepaged.c
1200
result = __collapse_huge_page_copy(pte, folio, pmd, _pmd,
mm/khugepaged.c
1216
BUG_ON(!pmd_none(*pmd));
mm/khugepaged.c
1217
pgtable_trans_huge_deposit(mm, pmd, pgtable);
mm/khugepaged.c
1218
map_anon_folio_pmd_nopf(folio, pmd, vma, address);
mm/khugepaged.c
1237
pmd_t *pmd;
mm/khugepaged.c
1249
result = find_pmd_or_thp_or_none(mm, start_addr, &pmd);
mm/khugepaged.c
1255
pte = pte_offset_map_lock(mm, pmd, start_addr, &ptl);
mm/khugepaged.c
1455
vmf.pmd = pmdp;
mm/khugepaged.c
1476
pmd_t *pmd, pgt_pmd;
mm/khugepaged.c
1488
result = find_pmd_or_thp_or_none(mm, haddr, &pmd);
mm/khugepaged.c
1516
result = find_pmd_or_thp_or_none(mm, haddr, &pmd);
mm/khugepaged.c
1531
start_pte = pte_offset_map_lock(mm, pmd, haddr, &ptl);
mm/khugepaged.c
1577
pml = pmd_lock(mm, pmd);
mm/khugepaged.c
1579
start_pte = pte_offset_map_rw_nolock(mm, pmd, haddr, &pgt_pmd, &ptl);
mm/khugepaged.c
1587
if (unlikely(!pmd_same(pgt_pmd, pmdp_get_lockless(pmd))))
mm/khugepaged.c
1640
pml = pmd_lock(mm, pmd);
mm/khugepaged.c
1643
if (unlikely(!pmd_same(pgt_pmd, pmdp_get_lockless(pmd)))) {
mm/khugepaged.c
1649
pgt_pmd = pmdp_collapse_flush(vma, haddr, pmd);
mm/khugepaged.c
1664
? set_huge_pmd(vma, haddr, pmd, folio, &folio->page)
mm/khugepaged.c
1750
pmd_t *pmd, pgt_pmd;
mm/khugepaged.c
1761
if (find_pmd_or_thp_or_none(mm, addr, &pmd) != SCAN_SUCCEED)
mm/khugepaged.c
1775
pml = pmd_lock(mm, pmd);
mm/khugepaged.c
1787
if (check_pmd_state(pmd) != SCAN_SUCCEED)
mm/khugepaged.c
1789
ptl = pte_lockptr(mm, pmd);
mm/khugepaged.c
1803
pgt_pmd = pmdp_collapse_flush(vma, addr, pmd);
mm/khugepaged.c
735
pmd_t *pmd,
mm/khugepaged.c
748
pmd_ptl = pmd_lock(vma->vm_mm, pmd);
mm/khugepaged.c
749
pmd_populate(vma->vm_mm, pmd, pmd_pgtable(orig_pmd));
mm/khugepaged.c
774
pmd_t *pmd, pmd_t orig_pmd, struct vm_area_struct *vma,
mm/khugepaged.c
805
__collapse_huge_page_copy_failed(pte, pmd, orig_pmd, vma,
mm/khugepaged.c
921
static inline enum scan_result check_pmd_state(pmd_t *pmd)
mm/khugepaged.c
923
pmd_t pmde = pmdp_get_lockless(pmd);
mm/khugepaged.c
945
unsigned long address, pmd_t **pmd)
mm/khugepaged.c
947
*pmd = mm_find_pmd(mm, address);
mm/khugepaged.c
948
if (!*pmd)
mm/khugepaged.c
951
return check_pmd_state(*pmd);
mm/khugepaged.c
955
unsigned long address, pmd_t *pmd)
mm/khugepaged.c
962
if (new_pmd != pmd)
mm/khugepaged.c
975
struct vm_area_struct *vma, unsigned long start_addr, pmd_t *pmd,
mm/khugepaged.c
991
.pmd = pmd,
mm/khugepaged.c
999
pte = pte_offset_map_ro_nolock(mm, pmd, addr, &ptl);
mm/ksm.c
1378
pmd_t *pmd;
mm/ksm.c
1391
pmd = mm_find_pmd(mm, addr);
mm/ksm.c
1392
if (!pmd)
mm/ksm.c
1399
pmde = pmdp_get_lockless(pmd);
mm/ksm.c
1407
ptep = pte_offset_map_lock(mm, pmd, addr, &ptl);
mm/ksm.c
2501
pmd_t pmd;
mm/ksm.c
2508
pmd = pmdp_get_lockless(pmdp);
mm/ksm.c
2509
if (!pmd_present(pmd))
mm/ksm.c
2512
if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && pmd_leaf(pmd)) {
mm/ksm.c
2514
pmd = pmdp_get(pmdp);
mm/ksm.c
2516
if (!pmd_present(pmd)) {
mm/ksm.c
2518
} else if (pmd_leaf(pmd)) {
mm/ksm.c
2519
page = vm_normal_page_pmd(vma, addr, pmd);
mm/madvise.c
1083
static int guard_install_pmd_entry(pmd_t *pmd, unsigned long addr,
mm/madvise.c
1086
pmd_t pmdval = pmdp_get(pmd);
mm/madvise.c
1224
static int guard_remove_pmd_entry(pmd_t *pmd, unsigned long addr,
mm/madvise.c
1227
pmd_t pmdval = pmdp_get(pmd);
mm/madvise.c
185
static int swapin_walk_pmd_entry(pmd_t *pmd, unsigned long start,
mm/madvise.c
200
ptep = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
mm/madvise.c
352
static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
mm/madvise.c
376
if (pmd_trans_huge(*pmd)) {
mm/madvise.c
381
ptl = pmd_trans_huge_lock(pmd, vma);
mm/madvise.c
385
orig_pmd = *pmd;
mm/madvise.c
419
pmdp_invalidate(vma, addr, pmd);
mm/madvise.c
422
set_pmd_at(mm, addr, pmd, orig_pmd);
mm/madvise.c
423
tlb_remove_pmd_tlb_entry(tlb, pmd, addr);
mm/madvise.c
450
start_pte = pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
mm/madvise.c
505
pte_offset_map_lock(mm, pmd, addr, &ptl);
mm/madvise.c
651
static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
mm/madvise.c
667
if (pmd_trans_huge(*pmd))
mm/madvise.c
668
if (madvise_free_huge_pmd(tlb, vma, pmd, addr, next))
mm/madvise.c
672
start_pte = pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
mm/madvise.c
731
pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
mm/mapping_dirty_helpers.c
126
static int wp_clean_pmd_entry(pmd_t *pmd, unsigned long addr, unsigned long end,
mm/mapping_dirty_helpers.c
129
pmd_t pmdval = pmdp_get_lockless(pmd);
mm/memory-failure.c
344
pmd_t *pmd;
mm/memory-failure.c
360
pmd = pmd_offset(pud, address);
mm/memory-failure.c
361
if (!pmd_present(*pmd))
mm/memory-failure.c
363
if (pmd_trans_huge(*pmd))
mm/memory-failure.c
365
pte = pte_offset_map(pmd, address);
mm/memory-failure.c
720
pmd_t pmd = *pmdp;
mm/memory-failure.c
724
if (!pmd_present(pmd))
mm/memory-failure.c
726
pfn = pmd_pfn(pmd);
mm/memory.c
1846
static bool zap_empty_pte_table(struct mm_struct *mm, pmd_t *pmd,
mm/memory.c
1849
spinlock_t *pml = pmd_lockptr(mm, pmd);
mm/memory.c
1854
*pmdval = pmdp_get(pmd);
mm/memory.c
1855
pmd_clear(pmd);
mm/memory.c
1861
static bool zap_pte_table_if_empty(struct mm_struct *mm, pmd_t *pmd,
mm/memory.c
1868
pml = pmd_lock(mm, pmd);
mm/memory.c
1869
start_pte = pte_offset_map_rw_nolock(mm, pmd, addr, pmdval, &ptl);
mm/memory.c
1881
pmd_clear(pmd);
mm/memory.c
189
static void free_pte_range(struct mmu_gather *tlb, pmd_t *pmd,
mm/memory.c
1896
struct vm_area_struct *vma, pmd_t *pmd,
mm/memory.c
1915
start_pte = pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
mm/memory.c
192
pgtable_t token = pmd_pgtable(*pmd);
mm/memory.c
193
pmd_clear(pmd);
mm/memory.c
1949
direct_reclaim = zap_empty_pte_table(mm, pmd, ptl, &pmdval);
mm/memory.c
1978
if (direct_reclaim || zap_pte_table_if_empty(mm, pmd, start, &pmdval)) {
mm/memory.c
1992
pmd_t *pmd;
mm/memory.c
1995
pmd = pmd_offset(pud, addr);
mm/memory.c
1998
if (pmd_is_huge(*pmd)) {
mm/memory.c
2000
__split_huge_pmd(vma, pmd, addr, false);
mm/memory.c
2001
else if (zap_huge_pmd(tlb, vma, pmd, addr)) {
mm/memory.c
2008
next - addr == HPAGE_PMD_SIZE && pmd_none(*pmd)) {
mm/memory.c
2009
spinlock_t *ptl = pmd_lock(tlb->mm, pmd);
mm/memory.c
2017
if (pmd_none(*pmd)) {
mm/memory.c
202
pmd_t *pmd;
mm/memory.c
2021
addr = zap_pte_range(tlb, vma, pmd, addr, next, details);
mm/memory.c
2023
pmd--;
mm/memory.c
2024
} while (pmd++, cond_resched(), addr != end);
mm/memory.c
207
pmd = pmd_offset(pud, addr);
mm/memory.c
210
if (pmd_none_or_clear_bad(pmd))
mm/memory.c
212
free_pte_range(tlb, pmd, addr);
mm/memory.c
213
} while (pmd++, addr = next, addr != end);
mm/memory.c
226
pmd = pmd_offset(pud, start);
mm/memory.c
2266
pmd_t *pmd;
mm/memory.c
2275
pmd = pmd_alloc(mm, pud, addr);
mm/memory.c
2276
if (!pmd)
mm/memory.c
2279
VM_BUG_ON(pmd_trans_huge(*pmd));
mm/memory.c
228
pmd_free_tlb(tlb, pmd, start);
mm/memory.c
2280
return pmd;
mm/memory.c
2286
pmd_t *pmd = walk_to_pmd(mm, addr);
mm/memory.c
2288
if (!pmd)
mm/memory.c
2290
return pte_alloc_map_lock(mm, pmd, addr, ptl);
mm/memory.c
2420
pmd_t *pmd = NULL;
mm/memory.c
2430
pmd = walk_to_pmd(mm, addr);
mm/memory.c
2431
if (!pmd)
mm/memory.c
2439
if (pte_alloc(mm, pmd))
mm/memory.c
2446
start_pte = pte_offset_map_lock(mm, pmd, addr, &pte_lock);
mm/memory.c
2867
static int remap_pte_range(struct mm_struct *mm, pmd_t *pmd,
mm/memory.c
2875
mapped_pte = pte = pte_alloc_map_lock(mm, pmd, addr, &ptl);
mm/memory.c
2897
pmd_t *pmd;
mm/memory.c
2902
pmd = pmd_alloc(mm, pud, addr);
mm/memory.c
2903
if (!pmd)
mm/memory.c
2905
VM_BUG_ON(pmd_trans_huge(*pmd));
mm/memory.c
2908
err = remap_pte_range(mm, pmd, addr, next,
mm/memory.c
2912
} while (pmd++, addr = next, addr != end);
mm/memory.c
3215
static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
mm/memory.c
3226
pte_alloc_kernel_track(pmd, addr, mask) :
mm/memory.c
3227
pte_alloc_map_lock(mm, pmd, addr, &ptl);
mm/memory.c
3232
pte_offset_kernel(pmd, addr) :
mm/memory.c
3233
pte_offset_map_lock(mm, pmd, addr, &ptl);
mm/memory.c
3263
pmd_t *pmd;
mm/memory.c
3270
pmd = pmd_alloc_track(mm, pud, addr, mask);
mm/memory.c
3271
if (!pmd)
mm/memory.c
3274
pmd = pmd_offset(pud, addr);
mm/memory.c
3278
if (pmd_none(*pmd) && !create)
mm/memory.c
3280
if (WARN_ON_ONCE(pmd_leaf(*pmd)))
mm/memory.c
3282
if (!pmd_none(*pmd) && WARN_ON_ONCE(pmd_bad(*pmd))) {
mm/memory.c
3285
pmd_clear_bad(pmd);
mm/memory.c
3287
err = apply_to_pte_range(mm, pmd, addr, next,
mm/memory.c
3291
} while (pmd++, addr = next, addr != end);
mm/memory.c
3494
vmf->pte = pte_offset_map_lock(mm, vmf->pmd, addr, &vmf->ptl);
mm/memory.c
3522
vmf->pte = pte_offset_map_lock(mm, vmf->pmd, addr, &vmf->ptl);
mm/memory.c
3816
vmf->pte = pte_offset_map_lock(mm, vmf->pmd, vmf->address, &vmf->ptl);
mm/memory.c
3929
vmf->pte = pte_offset_map_lock(vmf->vma->vm_mm, vmf->pmd, vmf->address,
mm/memory.c
438
void pmd_install(struct mm_struct *mm, pmd_t *pmd, pgtable_t *pte)
mm/memory.c
440
spinlock_t *ptl = pmd_lock(mm, pmd);
mm/memory.c
4403
vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, vmf->address,
mm/memory.c
442
if (likely(pmd_none(*pmd))) { /* Has another populated it ? */
mm/memory.c
4454
vmf->pte = pte_offset_map_lock(vmf->vma->vm_mm, vmf->pmd,
mm/memory.c
458
pmd_populate(mm, pmd, *pte);
mm/memory.c
464
int __pte_alloc(struct mm_struct *mm, pmd_t *pmd)
mm/memory.c
4642
pte = pte_offset_map_lock(vmf->vma->vm_mm, vmf->pmd,
mm/memory.c
470
pmd_install(mm, pmd, &new);
mm/memory.c
4728
migration_entry_wait(vma->vm_mm, vmf->pmd,
mm/memory.c
4745
vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd,
mm/memory.c
476
int __pte_alloc_kernel(pmd_t *pmd)
mm/memory.c
4810
vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd,
mm/memory.c
483
if (likely(pmd_none(*pmd))) { /* Has another populated it ? */
mm/memory.c
485
pmd_populate_kernel(&init_mm, pmd, new);
mm/memory.c
4881
vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, vmf->address,
mm/memory.c
5157
pte = pte_offset_map(vmf->pmd, vmf->address & PMD_MASK);
mm/memory.c
5234
if (pte_alloc(vma->vm_mm, vmf->pmd))
mm/memory.c
5242
vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd,
mm/memory.c
5287
vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, addr, &vmf->ptl);
mm/memory.c
5358
if (pmd_none(*vmf->pmd) && !vmf->prealloc_pte) {
mm/memory.c
5398
pgtable_trans_huge_deposit(vma->vm_mm, vmf->pmd, vmf->prealloc_pte);
mm/memory.c
540
pmd_t pmd, *pmdp;
mm/memory.c
5452
vmf->ptl = pmd_lock(vma->vm_mm, vmf->pmd);
mm/memory.c
5453
if (unlikely(!pmd_none(*vmf->pmd)))
mm/memory.c
5471
set_pmd_at(vma->vm_mm, haddr, vmf->pmd, entry);
mm/memory.c
5473
update_mmu_cache_pmd(vma, haddr, vmf->pmd);
mm/memory.c
5605
if (pmd_none(*vmf->pmd)) {
mm/memory.c
5613
pmd_install(vma->vm_mm, vmf->pmd, &vmf->prealloc_pte);
mm/memory.c
5614
else if (unlikely(pte_alloc(vma->vm_mm, vmf->pmd)))
mm/memory.c
5646
vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd,
mm/memory.c
574
pmd = pmdp_get(pmdp);
mm/memory.c
575
pmdv = pmd_val(pmd);
mm/memory.c
5750
if (pmd_none(*vmf->pmd)) {
mm/memory.c
5913
vmf->pte = pte_offset_map_lock(vmf->vma->vm_mm, vmf->pmd,
mm/memory.c
6113
vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd,
mm/memory.c
6176
__split_huge_pmd(vma, vmf->pmd, vmf->address, false);
mm/memory.c
6255
vmf->pmd);
mm/memory.c
6277
if (unlikely(pmd_none(*vmf->pmd))) {
mm/memory.c
6302
vmf->pte = pte_offset_map_rw_nolock(vmf->vma->vm_mm, vmf->pmd,
mm/memory.c
6407
vmf.pmd = pmd_alloc(mm, vmf.pud, address);
mm/memory.c
6408
if (!vmf.pmd)
mm/memory.c
6415
if (pmd_none(*vmf.pmd) &&
mm/memory.c
6424
vmf.orig_pmd = pmdp_get_lockless(vmf.pmd);
mm/memory.c
6433
pmd_migration_entry_wait(mm, vmf.pmd);
mm/memory.c
6446
vmf.ptl = pmd_lock(mm, vmf.pmd);
mm/memory.c
6796
pmd_t *pmdp, pmd;
mm/memory.c
6838
pmd = pmdp_get_lockless(pmdp);
mm/memory.c
6839
if (!pmd_present(pmd))
mm/memory.c
6841
if (pmd_leaf(pmd)) {
mm/memory.c
6843
pmd = pmdp_get(pmdp);
mm/memory.c
6845
if (unlikely(!pmd_present(pmd))) {
mm/memory.c
6848
} else if (unlikely(!pmd_leaf(pmd))) {
mm/memory.c
6852
pfnmap_args_setup(args, lock, NULL, pmd_pgprot(pmd),
mm/memory.c
6853
pmd_pfn(pmd), PMD_MASK, pmd_write(pmd),
mm/memory.c
6854
pmd_special(pmd));
mm/memory.c
807
pmd_t pmd)
mm/memory.c
809
return __vm_normal_page(vma, addr, pmd_pfn(pmd), pmd_special(pmd),
mm/memory.c
810
pmd_val(pmd), PGTABLE_LEVEL_PMD);
mm/memory.c
826
unsigned long addr, pmd_t pmd)
mm/memory.c
828
struct page *page = vm_normal_page_pmd(vma, addr, pmd);
mm/mempolicy.c
652
static void queue_folios_pmd(pmd_t *pmd, struct mm_walk *walk)
mm/mempolicy.c
657
if (unlikely(pmd_is_migration_entry(*pmd))) {
mm/mempolicy.c
661
folio = pmd_folio(*pmd);
mm/mempolicy.c
684
static int queue_folios_pte_range(pmd_t *pmd, unsigned long addr,
mm/mempolicy.c
696
ptl = pmd_trans_huge_lock(pmd, vma);
mm/mempolicy.c
698
queue_folios_pmd(pmd, walk);
mm/mempolicy.c
703
mapped_pte = pte = pte_offset_map_lock(walk->mm, pmd, addr, &ptl);
mm/migrate.c
481
void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd,
mm/migrate.c
489
ptep = pte_offset_map_lock(mm, pmd, address, &ptl);
mm/migrate.c
549
void pmd_migration_entry_wait(struct mm_struct *mm, pmd_t *pmd)
mm/migrate.c
553
ptl = pmd_lock(mm, pmd);
mm/migrate.c
554
if (!pmd_is_migration_entry(*pmd))
mm/migrate.c
556
softleaf_entry_wait_on_locked(softleaf_from_pmd(*pmd), ptl);
mm/migrate_device.c
206
.pmd = pmdp,
mm/mincore.c
163
static int mincore_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
mm/mincore.c
173
ptl = pmd_trans_huge_lock(pmd, vma);
mm/mincore.c
180
ptep = pte_offset_map_lock(walk->mm, pmd, addr, &ptl);
mm/mlock.c
350
static int mlock_pte_range(pmd_t *pmd, unsigned long addr,
mm/mlock.c
362
ptl = pmd_trans_huge_lock(pmd, vma);
mm/mlock.c
364
if (!pmd_present(*pmd))
mm/mlock.c
366
if (is_huge_zero_pmd(*pmd))
mm/mlock.c
368
folio = pmd_folio(*pmd);
mm/mlock.c
378
start_pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
mm/mprotect.c
215
struct vm_area_struct *vma, pmd_t *pmd, unsigned long addr,
mm/mprotect.c
228
pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
mm/mprotect.c
425
#define change_pmd_prepare(vma, pmd, cp_flags) \
mm/mprotect.c
429
if (pte_alloc(vma->vm_mm, pmd)) \
mm/mprotect.c
455
pmd_t *pmd;
mm/mprotect.c
460
pmd = pmd_offset(pud, addr);
mm/mprotect.c
467
ret = change_pmd_prepare(vma, pmd, cp_flags);
mm/mprotect.c
473
if (pmd_none(*pmd))
mm/mprotect.c
476
_pmd = pmdp_get_lockless(pmd);
mm/mprotect.c
480
__split_huge_pmd(vma, pmd, addr, false);
mm/mprotect.c
486
ret = change_pmd_prepare(vma, pmd, cp_flags);
mm/mprotect.c
492
ret = change_huge_pmd(tlb, vma, pmd,
mm/mprotect.c
507
ret = change_pte_range(tlb, vma, pmd, addr, next, newprot,
mm/mprotect.c
514
} while (pmd++, addr = next, addr != end);
mm/mprotect.c
536
ret = change_prepare(vma, pudp, pmd, addr, cp_flags);
mm/mremap.c
105
pmd = pmd_offset(pud, addr);
mm/mremap.c
106
if (pmd_none(*pmd))
mm/mremap.c
109
return pmd;
mm/mremap.c
128
pmd_t *pmd;
mm/mremap.c
134
pmd = pmd_alloc(mm, pud, addr);
mm/mremap.c
135
if (!pmd)
mm/mremap.c
138
VM_BUG_ON(pmd_trans_huge(*pmd));
mm/mremap.c
140
return pmd;
mm/mremap.c
357
pmd_t pmd;
mm/mremap.c
398
pmd = *old_pmd;
mm/mremap.c
401
if (unlikely(!pmd_present(pmd) || pmd_leaf(pmd)))
mm/mremap.c
409
pmd_populate(mm, new_pmd, pmd_pgtable(pmd));
mm/mremap.c
99
pmd_t *pmd;
mm/page_idle.c
74
pmd_t pmdval = pmdp_get(pvmw.pmd);
mm/page_idle.c
77
referenced |= pmdp_clear_young_notify(vma, addr, pvmw.pmd);
mm/page_table_check.c
161
pmd_t pmd)
mm/page_table_check.c
166
if (pmd_user_accessible_page(pmd, addr)) {
mm/page_table_check.c
167
page_table_check_clear(pmd_pfn(pmd), PMD_SIZE >> PAGE_SHIFT);
mm/page_table_check.c
219
static inline void page_table_check_pmd_flags(pmd_t pmd)
mm/page_table_check.c
221
if (pmd_present(pmd)) {
mm/page_table_check.c
222
if (pmd_uffd_wp(pmd))
mm/page_table_check.c
223
WARN_ON_ONCE(pmd_write(pmd));
mm/page_table_check.c
224
} else if (pmd_swp_uffd_wp(pmd)) {
mm/page_table_check.c
225
const softleaf_t entry = softleaf_from_pmd(pmd);
mm/page_table_check.c
232
pmd_t *pmdp, pmd_t pmd, unsigned int nr)
mm/page_table_check.c
240
page_table_check_pmd_flags(pmd);
mm/page_table_check.c
244
if (pmd_user_accessible_page(pmd, addr))
mm/page_table_check.c
245
page_table_check_set(pmd_pfn(pmd), stride * nr, pmd_write(pmd));
mm/page_table_check.c
267
pmd_t pmd)
mm/page_table_check.c
272
if (!pmd_bad(pmd) && !pmd_leaf(pmd)) {
mm/page_table_check.c
273
pte_t *ptep = pte_offset_map(&pmd, addr);
mm/page_vma_mapped.c
192
if (pvmw->pmd && !pvmw->pte)
mm/page_vma_mapped.c
237
pvmw->pmd = pmd_offset(pud, pvmw->address);
mm/page_vma_mapped.c
24
pvmw->pte = pte_offset_map_lock(pvmw->vma->vm_mm, pvmw->pmd,
mm/page_vma_mapped.c
243
pmde = pmdp_get_lockless(pvmw->pmd);
mm/page_vma_mapped.c
246
pvmw->ptl = pmd_lock(mm, pvmw->pmd);
mm/page_vma_mapped.c
247
pmde = *pvmw->pmd;
mm/page_vma_mapped.c
280
pvmw->ptl = pmd_lock(mm, pvmw->pmd);
mm/page_vma_mapped.c
288
spinlock_t *ptl = pmd_lock(mm, pvmw->pmd);
mm/page_vma_mapped.c
324
if (unlikely(!pmd_same(pmde, pmdp_get_lockless(pvmw->pmd)))) {
mm/page_vma_mapped.c
39
pvmw->pte = pte_offset_map_rw_nolock(pvmw->vma->vm_mm, pvmw->pmd,
mm/page_vma_mapped.c
76
if (unlikely(!pmd_same(*pmdvalp, pmdp_get_lockless(pvmw->pmd)))) {
mm/pagewalk.c
1008
VM_WARN_ON_ONCE(!pmd_present(pmd) || pmd_leaf(pmd));
mm/pagewalk.c
101
pmd_t *pmd;
mm/pagewalk.c
127
pmd = pmd_offset(pud, addr);
mm/pagewalk.c
131
if (pmd_none(*pmd)) {
mm/pagewalk.c
133
err = __pte_alloc(walk->mm, pmd);
mm/pagewalk.c
149
err = ops->pmd_entry(pmd, addr, next, walk);
mm/pagewalk.c
165
if (pmd_present(*pmd) && pmd_trans_huge(*pmd))
mm/pagewalk.c
170
split_huge_pmd(walk->vma, pmd, addr);
mm/pagewalk.c
171
else if (pmd_leaf(*pmd) || !pmd_present(*pmd))
mm/pagewalk.c
174
err = walk_pte_range(pmd, addr, next, walk);
mm/pagewalk.c
181
} while (pmd++, addr = next, addr != end);
mm/pagewalk.c
62
static int walk_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
mm/pagewalk.c
77
pte = pte_offset_kernel(pmd, addr);
mm/pagewalk.c
79
pte = pte_offset_map(pmd, addr);
mm/pagewalk.c
86
pte = pte_offset_map_lock(walk->mm, pmd, addr, &ptl);
mm/pagewalk.c
910
pmd_t *pmdp, pmd;
mm/pagewalk.c
966
pmd = pmdp_get_lockless(pmdp);
mm/pagewalk.c
967
if (pmd_none(pmd))
mm/pagewalk.c
970
(!pmd_present(pmd) || pmd_leaf(pmd))) {
mm/pagewalk.c
972
pmd = pmdp_get(pmdp);
mm/pagewalk.c
977
fw->pmd = pmd;
mm/pagewalk.c
979
if (pmd_none(pmd)) {
mm/pagewalk.c
982
} else if (pmd_present(pmd) && !pmd_leaf(pmd)) {
mm/pagewalk.c
985
} else if (pmd_present(pmd)) {
mm/pagewalk.c
986
page = vm_normal_page_pmd(vma, addr, pmd);
mm/pagewalk.c
990
is_huge_zero_pmd(pmd)) {
mm/pagewalk.c
991
page = pfn_to_page(pmd_pfn(pmd));
mm/pagewalk.c
996
pmd_is_migration_entry(pmd)) {
mm/pagewalk.c
997
const softleaf_t entry = softleaf_from_pmd(pmd);
mm/percpu.c
3150
pmd_t *pmd;
mm/percpu.c
3165
pmd = memblock_alloc_or_panic(PMD_TABLE_SIZE, PMD_TABLE_SIZE);
mm/percpu.c
3166
pud_populate(&init_mm, pud, pmd);
mm/percpu.c
3169
pmd = pmd_offset(pud, addr);
mm/percpu.c
3170
if (!pmd_present(*pmd)) {
mm/percpu.c
3174
pmd_populate_kernel(&init_mm, pmd, new);
mm/pgalloc-track.h
46
#define pte_alloc_kernel_track(pmd, address, mask) \
mm/pgalloc-track.h
47
((unlikely(pmd_none(*(pmd))) && \
mm/pgalloc-track.h
48
(__pte_alloc_kernel(pmd) || ({*(mask)|=PGTBL_PMD_MODIFIED;0;})))?\
mm/pgalloc-track.h
49
NULL: pte_offset_kernel(pmd, address))
mm/pgtable-generic.c
142
pmd_t pmd;
mm/pgtable-generic.c
145
pmd = pmdp_huge_get_and_clear(vma->vm_mm, address, pmdp);
mm/pgtable-generic.c
147
return pmd;
mm/pgtable-generic.c
226
pmd_t pmd;
mm/pgtable-generic.c
230
pmd = pmdp_huge_get_and_clear(vma->vm_mm, address, pmdp);
mm/pgtable-generic.c
234
return pmd;
mm/pgtable-generic.c
283
pte_t *__pte_offset_map(pmd_t *pmd, unsigned long addr, pmd_t *pmdvalp)
mm/pgtable-generic.c
290
pmdval = pmdp_get_lockless(pmd);
mm/pgtable-generic.c
300
pmd_clear_bad(pmd);
mm/pgtable-generic.c
309
pte_t *pte_offset_map_ro_nolock(struct mm_struct *mm, pmd_t *pmd,
mm/pgtable-generic.c
315
pte = __pte_offset_map(pmd, addr, &pmdval);
mm/pgtable-generic.c
321
pte_t *pte_offset_map_rw_nolock(struct mm_struct *mm, pmd_t *pmd,
mm/pgtable-generic.c
328
pte = __pte_offset_map(pmd, addr, pmdvalp);
mm/pgtable-generic.c
391
pte_t *pte_offset_map_lock(struct mm_struct *mm, pmd_t *pmd,
mm/pgtable-generic.c
398
pte = __pte_offset_map(pmd, addr, &pmdval);
mm/pgtable-generic.c
403
if (likely(pmd_same(pmdval, pmdp_get_lockless(pmd)))) {
mm/pgtable-generic.c
54
void pmd_clear_bad(pmd_t *pmd)
mm/pgtable-generic.c
56
pmd_ERROR(*pmd);
mm/pgtable-generic.c
57
pmd_clear(pmd);
mm/ptdump.c
103
pmd_t val = pmdp_get(pmd);
mm/ptdump.c
99
static int ptdump_pmd_entry(pmd_t *pmd, unsigned long addr,
mm/rmap.c
1139
pmd_t *pmd = pvmw->pmd;
mm/rmap.c
1140
pmd_t entry = pmdp_get(pmd);
mm/rmap.c
1154
entry = pmdp_invalidate(vma, address, pmd);
mm/rmap.c
1157
set_pmd_at(vma->vm_mm, address, pmd, entry);
mm/rmap.c
2064
if (unmap_huge_pmd_locked(vma, pvmw.address, pvmw.pmd, folio))
mm/rmap.c
2080
pvmw.pmd, false);
mm/rmap.c
2467
pvmw.pmd, true);
mm/rmap.c
2473
pmdval = pmdp_get(pvmw.pmd);
mm/rmap.c
888
pmd_t *pmd = NULL;
mm/rmap.c
902
pmd = pmd_offset(pud, address);
mm/rmap.c
904
return pmd;
mm/rmap.c
989
pvmw.pmd))
mm/sparse-vmemmap.c
154
pte_t * __meminit vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node,
mm/sparse-vmemmap.c
158
pte_t *pte = pte_offset_kernel(pmd, addr);
mm/sparse-vmemmap.c
200
pmd_t *pmd = pmd_offset(pud, addr);
mm/sparse-vmemmap.c
201
if (pmd_none(*pmd)) {
mm/sparse-vmemmap.c
206
pmd_populate_kernel(&init_mm, pmd, p);
mm/sparse-vmemmap.c
208
return pmd;
mm/sparse-vmemmap.c
257
pmd_t *pmd;
mm/sparse-vmemmap.c
269
pmd = vmemmap_pmd_populate(pud, addr, node);
mm/sparse-vmemmap.c
270
if (!pmd)
mm/sparse-vmemmap.c
272
pte = vmemmap_pte_populate(pmd, addr, node, altmap, ptpfn, flags);
mm/sparse-vmemmap.c
405
void __weak __meminit vmemmap_set_pmd(pmd_t *pmd, void *p, int node,
mm/sparse-vmemmap.c
410
int __weak __meminit vmemmap_check_pmd(pmd_t *pmd, int node,
mm/sparse-vmemmap.c
424
pmd_t *pmd;
mm/sparse-vmemmap.c
441
pmd = pmd_offset(pud, addr);
mm/sparse-vmemmap.c
442
if (pmd_none(pmdp_get(pmd))) {
mm/sparse-vmemmap.c
447
vmemmap_set_pmd(pmd, p, node, addr, next);
mm/sparse-vmemmap.c
460
} else if (vmemmap_check_pmd(pmd, node, addr, next))
mm/swap_state.c
852
pte = pte_offset_map(vmf->pmd, addr);
mm/swapfile.c
2080
static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd,
mm/swapfile.c
2110
pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
mm/swapfile.c
2188
static int unuse_pte_range(struct vm_area_struct *vma, pmd_t *pmd,
mm/swapfile.c
2205
pte = pte_offset_map(pmd, addr);
mm/swapfile.c
2228
.pmd = pmd,
mm/swapfile.c
2243
ret = unuse_pte(vma, pmd, addr, entry, folio);
mm/swapfile.c
2264
pmd_t *pmd;
mm/swapfile.c
2268
pmd = pmd_offset(pud, addr);
mm/swapfile.c
2272
ret = unuse_pte_range(vma, pmd, addr, next, type);
mm/swapfile.c
2275
} while (pmd++, addr = next, addr != end);
mm/vmalloc.c
107
pte = pte_alloc_kernel_track(pmd, addr, mask);
mm/vmalloc.c
142
static int vmap_try_huge_pmd(pmd_t *pmd, unsigned long addr, unsigned long end,
mm/vmalloc.c
161
if (pmd_present(*pmd) && !pmd_free_pte_page(pmd, addr))
mm/vmalloc.c
164
return pmd_set_huge(pmd, phys_addr, prot);
mm/vmalloc.c
171
pmd_t *pmd;
mm/vmalloc.c
175
pmd = pmd_alloc_track(&init_mm, pud, addr, mask);
mm/vmalloc.c
176
if (!pmd)
mm/vmalloc.c
181
if (vmap_try_huge_pmd(pmd, addr, next, phys_addr, prot,
mm/vmalloc.c
187
err = vmap_pte_range(pmd, addr, next, phys_addr, prot, max_page_shift, mask);
mm/vmalloc.c
190
} while (pmd++, phys_addr += (next - addr), addr = next, addr != end);
mm/vmalloc.c
366
static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
mm/vmalloc.c
373
pte = pte_offset_kernel(pmd, addr);
mm/vmalloc.c
400
pmd_t *pmd;
mm/vmalloc.c
404
pmd = pmd_offset(pud, addr);
mm/vmalloc.c
408
cleared = pmd_clear_huge(pmd);
mm/vmalloc.c
409
if (cleared || pmd_bad(*pmd))
mm/vmalloc.c
416
if (pmd_none_or_clear_bad(pmd))
mm/vmalloc.c
418
vunmap_pte_range(pmd, addr, next, mask);
mm/vmalloc.c
421
} while (pmd++, addr = next, addr != end);
mm/vmalloc.c
525
static int vmap_pages_pte_range(pmd_t *pmd, unsigned long addr,
mm/vmalloc.c
537
pte = pte_alloc_kernel_track(pmd, addr, mask);
mm/vmalloc.c
573
pmd_t *pmd;
mm/vmalloc.c
576
pmd = pmd_alloc_track(&init_mm, pud, addr, mask);
mm/vmalloc.c
577
if (!pmd)
mm/vmalloc.c
581
if (vmap_pages_pte_range(pmd, addr, next, prot, pages, nr, mask))
mm/vmalloc.c
583
} while (pmd++, addr = next, addr != end);
mm/vmalloc.c
806
pmd_t *pmd;
mm/vmalloc.c
838
pmd = pmd_offset(pud, addr);
mm/vmalloc.c
839
if (pmd_none(*pmd))
mm/vmalloc.c
841
if (pmd_leaf(*pmd))
mm/vmalloc.c
842
return pmd_page(*pmd) + ((addr & ~PMD_MASK) >> PAGE_SHIFT);
mm/vmalloc.c
843
if (WARN_ON_ONCE(pmd_bad(*pmd)))
mm/vmalloc.c
846
ptep = pte_offset_kernel(pmd, addr);
mm/vmalloc.c
94
static int vmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
mm/vmscan.c
3422
static unsigned long get_pmd_pfn(pmd_t pmd, struct vm_area_struct *vma, unsigned long addr,
mm/vmscan.c
3425
unsigned long pfn = pmd_pfn(pmd);
mm/vmscan.c
3429
if (!pmd_present(pmd) || is_huge_zero_pmd(pmd))
mm/vmscan.c
3432
if (!pmd_young(pmd) && !mm_has_notifiers(vma->vm_mm))
mm/vmscan.c
3493
static bool walk_pte_range(pmd_t *pmd, unsigned long start, unsigned long end,
mm/vmscan.c
3511
pte = pte_offset_map_rw_nolock(args->mm, pmd, start & PMD_MASK, &pmdval, &ptl);
mm/vmscan.c
3520
if (unlikely(!pmd_same(pmdval, pmdp_get_lockless(pmd)))) {
mm/vmscan.c
3577
pmd_t *pmd;
mm/vmscan.c
3601
pmd = pmd_offset(pud, *first);
mm/vmscan.c
3603
ptl = pmd_lockptr(args->mm, pmd);
mm/vmscan.c
3616
if (!pmd_present(pmd[i]))
mm/vmscan.c
3619
if (!pmd_trans_huge(pmd[i])) {
mm/vmscan.c
3622
pmdp_test_and_clear_young(vma, addr, pmd + i);
mm/vmscan.c
3626
pfn = get_pmd_pfn(pmd[i], vma, addr, pgdat);
mm/vmscan.c
3634
if (!pmdp_clear_young_notify(vma, addr, pmd + i))
mm/vmscan.c
3644
if (pmd_dirty(pmd[i]))
mm/vmscan.c
3664
pmd_t *pmd;
mm/vmscan.c
3680
pmd = pmd_offset(pud, start & PUD_MASK);
mm/vmscan.c
3685
pmd_t val = pmdp_get_lockless(pmd + i);
mm/vmscan.c
3713
if (!walk->force_scan && !test_bloom_filter(mm_state, walk->seq, pmd + i))
mm/vmscan.c
3724
update_bloom_filter(mm_state, walk->seq + 1, pmd + i);
mm/vmscan.c
4292
update_bloom_filter(mm_state, max_seq, pvmw->pmd);
sound/soc/codecs/cs42l43.c
1498
static int cs42l43_dapm_wait_completion(struct completion *pmu, struct completion *pmd,
sound/soc/codecs/cs42l43.c
1508
reinit_completion(pmd);
sound/soc/codecs/cs42l43.c
1514
time_left = wait_for_completion_timeout(pmd, msecs_to_jiffies(timeout_ms));
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
172
printf("PMD: 0x%016lx\n", mapping.pmd);
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
181
ASSERT_NE(0, mapping.pmd);
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
185
ASSERT_EQ(0, mapping.pmd);
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
22
u64 pmd;
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
71
parse_next_value(&rest, &mapping->pmd);