Home
last modified time | relevance | path

Searched refs:pmd (Results 1 – 200 of 297) sorted by relevance

12

/linux-4.4.14/drivers/md/
Ddm-thin-metadata.c205 struct dm_pool_metadata *pmd; member
361 static int superblock_lock_zero(struct dm_pool_metadata *pmd, in superblock_lock_zero() argument
364 return dm_bm_write_lock_zero(pmd->bm, THIN_SUPERBLOCK_LOCATION, in superblock_lock_zero()
368 static int superblock_lock(struct dm_pool_metadata *pmd, in superblock_lock() argument
371 return dm_bm_write_lock(pmd->bm, THIN_SUPERBLOCK_LOCATION, in superblock_lock()
404 static void __setup_btree_details(struct dm_pool_metadata *pmd) in __setup_btree_details() argument
406 pmd->info.tm = pmd->tm; in __setup_btree_details()
407 pmd->info.levels = 2; in __setup_btree_details()
408 pmd->info.value_type.context = pmd->data_sm; in __setup_btree_details()
409 pmd->info.value_type.size = sizeof(__le64); in __setup_btree_details()
[all …]
Ddm-thin-metadata.h48 int dm_pool_metadata_close(struct dm_pool_metadata *pmd);
61 int dm_pool_create_thin(struct dm_pool_metadata *pmd, dm_thin_id dev);
69 int dm_pool_create_snap(struct dm_pool_metadata *pmd, dm_thin_id dev,
77 int dm_pool_delete_thin_device(struct dm_pool_metadata *pmd,
84 int dm_pool_commit_metadata(struct dm_pool_metadata *pmd);
94 int dm_pool_abort_metadata(struct dm_pool_metadata *pmd);
99 int dm_pool_set_metadata_transaction_id(struct dm_pool_metadata *pmd,
103 int dm_pool_get_metadata_transaction_id(struct dm_pool_metadata *pmd,
115 int dm_pool_reserve_metadata_snap(struct dm_pool_metadata *pmd);
116 int dm_pool_release_metadata_snap(struct dm_pool_metadata *pmd);
[all …]
Ddm-thin.c229 struct dm_pool_metadata *pmd; member
1014 r = dm_pool_block_is_used(pool->pmd, b, &used); in passdown_double_checking_shared_status()
1027 r = dm_pool_block_is_used(pool->pmd, e, &used); in passdown_double_checking_shared_status()
1310 r = dm_pool_get_free_block_count(pool->pmd, &nr_free); in check_for_space()
1329 r = dm_pool_commit_metadata(pool->pmd); in commit()
1361 r = dm_pool_get_free_block_count(pool->pmd, &free_blocks); in alloc_data_block()
1378 r = dm_pool_get_free_block_count(pool->pmd, &free_blocks); in alloc_data_block()
1390 r = dm_pool_alloc_data_block(pool->pmd, result); in alloc_data_block()
2043 dm_pool_issue_prefetches(pool->pmd); in process_thin_deferred_bios()
2195 !(dm_pool_changed_this_transaction(pool->pmd) && need_commit_due_to_time(pool))) in process_deferred_bios()
[all …]
/linux-4.4.14/arch/arc/include/asm/
Dhugepage.h16 static inline pte_t pmd_pte(pmd_t pmd) in pmd_pte() argument
18 return __pte(pmd_val(pmd)); in pmd_pte()
26 #define pmd_wrprotect(pmd) pte_pmd(pte_wrprotect(pmd_pte(pmd))) argument
27 #define pmd_mkwrite(pmd) pte_pmd(pte_mkwrite(pmd_pte(pmd))) argument
28 #define pmd_mkdirty(pmd) pte_pmd(pte_mkdirty(pmd_pte(pmd))) argument
29 #define pmd_mkold(pmd) pte_pmd(pte_mkold(pmd_pte(pmd))) argument
30 #define pmd_mkyoung(pmd) pte_pmd(pte_mkyoung(pmd_pte(pmd))) argument
31 #define pmd_mkhuge(pmd) pte_pmd(pte_mkhuge(pmd_pte(pmd))) argument
32 #define pmd_mknotpresent(pmd) pte_pmd(pte_mknotpresent(pmd_pte(pmd))) argument
33 #define pmd_mksplitting(pmd) pte_pmd(pte_mkspecial(pmd_pte(pmd))) argument
[all …]
Dpgalloc.h39 pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) in pmd_populate_kernel() argument
41 pmd_set(pmd, pte); in pmd_populate_kernel()
45 pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t ptep) in pmd_populate() argument
47 pmd_set(pmd, (pte_t *) ptep); in pmd_populate()
137 #define pmd_pgtable(pmd) ((pgtable_t) pmd_page_vaddr(pmd)) argument
/linux-4.4.14/arch/arm/include/asm/
Dpgtable-3level.h145 #define pmd_table(pmd) ((pmd_val(pmd) & PMD_TYPE_MASK) == \ argument
147 #define pmd_sect(pmd) ((pmd_val(pmd) & PMD_TYPE_MASK) == \ argument
149 #define pmd_large(pmd) pmd_sect(pmd) argument
175 #define pmd_bad(pmd) (!(pmd_val(pmd) & 2)) argument
211 #define pmd_isset(pmd, val) ((u32)(val) == (val) ? pmd_val(pmd) & (val) \ argument
212 : !!(pmd_val(pmd) & (val)))
213 #define pmd_isclear(pmd, val) (!(pmd_val(pmd) & (val))) argument
215 #define pmd_young(pmd) (pmd_isset((pmd), PMD_SECT_AF)) argument
225 #define pmd_write(pmd) (pmd_isclear((pmd), L_PMD_SECT_RDONLY)) argument
226 #define pmd_dirty(pmd) (pmd_isset((pmd), L_PMD_SECT_DIRTY)) argument
[all …]
Dkvm_mmu.h72 static inline void kvm_set_pmd(pmd_t *pmd, pmd_t new_pmd) in kvm_set_pmd() argument
74 *pmd = new_pmd; in kvm_set_pmd()
75 flush_pmd_entry(pmd); in kvm_set_pmd()
93 static inline void kvm_clean_pmd(pmd_t *pmd) in kvm_clean_pmd() argument
95 clean_dcache_area(pmd, PTRS_PER_PMD * sizeof(pmd_t)); in kvm_clean_pmd()
98 static inline void kvm_clean_pmd_entry(pmd_t *pmd) in kvm_clean_pmd_entry() argument
100 clean_pmd_entry(pmd); in kvm_clean_pmd_entry()
113 static inline void kvm_set_s2pmd_writable(pmd_t *pmd) in kvm_set_s2pmd_writable() argument
115 pmd_val(*pmd) |= L_PMD_S2_RDWR; in kvm_set_s2pmd_writable()
128 static inline void kvm_set_s2pmd_readonly(pmd_t *pmd) in kvm_set_s2pmd_readonly() argument
[all …]
Dpgalloc.h35 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) in pmd_free() argument
37 BUG_ON((unsigned long)pmd & (PAGE_SIZE-1)); in pmd_free()
38 free_page((unsigned long)pmd); in pmd_free()
41 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) in pud_populate() argument
43 set_pud(pud, __pud(__pa(pmd) | PMD_TYPE_TABLE)); in pud_populate()
52 #define pmd_free(mm, pmd) do { } while (0) argument
53 #define pud_populate(mm,pmd,pte) BUG() argument
170 #define pmd_pgtable(pmd) pmd_page(pmd) argument
Dpgtable.h56 #define pmd_ERROR(pmd) __pmd_error(__FILE__, __LINE__, pmd) argument
184 #define pmd_none(pmd) (!pmd_val(pmd)) argument
185 #define pmd_present(pmd) (pmd_val(pmd)) argument
187 static inline pte_t *pmd_page_vaddr(pmd_t pmd) in pmd_page_vaddr() argument
189 return __va(pmd_val(pmd) & PHYS_MASK & (s32)PAGE_MASK); in pmd_page_vaddr()
192 #define pmd_page(pmd) pfn_to_page(__phys_to_pfn(pmd_val(pmd) & PHYS_MASK)) argument
195 #define __pte_map(pmd) pmd_page_vaddr(*(pmd)) argument
198 #define __pte_map(pmd) (pte_t *)kmap_atomic(pmd_page(*(pmd))) argument
204 #define pte_offset_kernel(pmd,addr) (pmd_page_vaddr(*(pmd)) + pte_index(addr)) argument
206 #define pte_offset_map(pmd,addr) (__pte_map(pmd) + pte_index(addr)) argument
Dpgtable-2level.h194 #define pmd_large(pmd) (pmd_val(pmd) & 2) argument
195 #define pmd_bad(pmd) (pmd_val(pmd) & 2) argument
222 #define pmd_hugewillfault(pmd) (0) argument
223 #define pmd_thp_or_huge(pmd) (0) argument
Dtlbflush.h576 static inline void flush_pmd_entry(void *pmd) in flush_pmd_entry() argument
580 tlb_op(TLB_DCLEAN, "c7, c10, 1 @ flush_pmd", pmd); in flush_pmd_entry()
581 tlb_l2_op(TLB_L2CLEAN_FR, "c15, c9, 1 @ L2 flush_pmd", pmd); in flush_pmd_entry()
587 static inline void clean_pmd_entry(void *pmd) in clean_pmd_entry() argument
591 tlb_op(TLB_DCLEAN, "c7, c10, 1 @ flush_pmd", pmd); in clean_pmd_entry()
592 tlb_l2_op(TLB_L2CLEAN_FR, "c15, c9, 1 @ L2 flush_pmd", pmd); in clean_pmd_entry()
640 #define update_mmu_cache_pmd(vma, address, pmd) do { } while (0) argument
Dpgtable-2level-types.h34 typedef struct { pmdval_t pmd; } pmd_t; member
39 #define pmd_val(x) ((x).pmd)
Dpgtable-3level-types.h37 typedef struct { pmdval_t pmd; } pmd_t; member
42 #define pmd_val(x) ((x).pmd)
/linux-4.4.14/arch/s390/mm/
Dhugetlbpage.c13 pmd_t pmd; in __pte_to_pmd() local
36 pmd_val(pmd) = pte_val(pte) & PAGE_MASK; in __pte_to_pmd()
37 pmd_val(pmd) |= (pte_val(pte) & _PAGE_READ) >> 4; in __pte_to_pmd()
38 pmd_val(pmd) |= (pte_val(pte) & _PAGE_WRITE) >> 4; in __pte_to_pmd()
39 pmd_val(pmd) |= (pte_val(pte) & _PAGE_INVALID) >> 5; in __pte_to_pmd()
40 pmd_val(pmd) |= (pte_val(pte) & _PAGE_PROTECT); in __pte_to_pmd()
41 pmd_val(pmd) |= (pte_val(pte) & _PAGE_DIRTY) << 10; in __pte_to_pmd()
42 pmd_val(pmd) |= (pte_val(pte) & _PAGE_YOUNG) << 10; in __pte_to_pmd()
43 pmd_val(pmd) |= (pte_val(pte) & _PAGE_SOFT_DIRTY) << 13; in __pte_to_pmd()
45 pmd_val(pmd) = _SEGMENT_ENTRY_INVALID; in __pte_to_pmd()
[all …]
Dgup.c20 static inline int gup_pte_range(pmd_t *pmdp, pmd_t pmd, unsigned long addr, in gup_pte_range() argument
29 ptep = ((pte_t *) pmd_deref(pmd)) + pte_index(addr); in gup_pte_range()
54 static inline int gup_huge_pmd(pmd_t *pmdp, pmd_t pmd, unsigned long addr, in gup_huge_pmd() argument
63 if ((pmd_val(pmd) & mask) != result) in gup_huge_pmd()
65 VM_BUG_ON(!pfn_valid(pmd_val(pmd) >> PAGE_SHIFT)); in gup_huge_pmd()
68 head = pmd_page(pmd); in gup_huge_pmd()
84 if (unlikely(pmd_val(pmd) != pmd_val(*pmdp))) { in gup_huge_pmd()
109 pmd_t *pmdp, pmd; in gup_pmd_range() local
116 pmd = *pmdp; in gup_pmd_range()
128 if (pmd_none(pmd) || pmd_trans_splitting(pmd)) in gup_pmd_range()
[all …]
Ddump_pagetables.c111 pmd_t *pmd, unsigned long addr) in walk_pte_level() argument
119 pte = pte_offset_kernel(pmd, addr); in walk_pte_level()
130 pmd_t *pmd; in walk_pmd_level() local
135 pmd = pmd_offset(pud, addr); in walk_pmd_level()
136 if (!pmd_none(*pmd)) { in walk_pmd_level()
137 if (pmd_large(*pmd)) { in walk_pmd_level()
138 prot = pmd_val(*pmd) & _SEGMENT_ENTRY_PROTECT; in walk_pmd_level()
141 walk_pte_level(m, st, pmd, addr); in walk_pmd_level()
Dpageattr.c129 pmd_t *pmd; in __kernel_map_pages() local
136 pmd = pmd_offset(pud, address); in __kernel_map_pages()
137 pte = pte_offset_kernel(pmd, address); in __kernel_map_pages()
/linux-4.4.14/arch/mips/include/asm/
Dpgtable.h91 #define pmd_phys(pmd) virt_to_phys((void *)pmd_val(pmd)) argument
93 #define __pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT)) argument
95 #define pmd_page(pmd) __pmd_page(pmd) argument
98 #define pmd_page_vaddr(pmd) pmd_val(pmd) argument
489 static inline int pmd_trans_huge(pmd_t pmd) in pmd_trans_huge() argument
491 return !!(pmd_val(pmd) & _PAGE_HUGE); in pmd_trans_huge()
494 static inline pmd_t pmd_mkhuge(pmd_t pmd) in pmd_mkhuge() argument
496 pmd_val(pmd) |= _PAGE_HUGE; in pmd_mkhuge()
498 return pmd; in pmd_mkhuge()
501 static inline int pmd_trans_splitting(pmd_t pmd) in pmd_trans_splitting() argument
[all …]
Dpgalloc.h16 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, in pmd_populate_kernel() argument
19 set_pmd(pmd, __pmd((unsigned long)pte)); in pmd_populate_kernel()
22 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, in pmd_populate() argument
25 set_pmd(pmd, __pmd((unsigned long)page_address(pte))); in pmd_populate()
27 #define pmd_pgtable(pmd) pmd_page(pmd) argument
36 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) in pud_populate() argument
38 set_pud(pud, __pud((unsigned long)pmd)); in pud_populate()
114 pmd_t *pmd; in pmd_alloc_one() local
116 pmd = (pmd_t *) __get_free_pages(GFP_KERNEL|__GFP_REPEAT, PMD_ORDER); in pmd_alloc_one()
117 if (pmd) in pmd_alloc_one()
[all …]
Dpgtable-64.h160 typedef struct { unsigned long pmd; } pmd_t; member
161 #define pmd_val(x) ((x).pmd)
171 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
173 return pmd_val(pmd) == (unsigned long) invalid_pte_table; in pmd_none()
176 static inline int pmd_bad(pmd_t pmd) in pmd_bad() argument
180 if (unlikely(pmd_val(pmd) & _PAGE_HUGE)) in pmd_bad()
184 if (unlikely(pmd_val(pmd) & ~PAGE_MASK)) in pmd_bad()
190 static inline int pmd_present(pmd_t pmd) in pmd_present() argument
192 return pmd_val(pmd) != (unsigned long) invalid_pte_table; in pmd_present()
Dpgtable-32.h89 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
91 return pmd_val(pmd) == (unsigned long) invalid_pte_table; in pmd_none()
94 #define pmd_bad(pmd) (pmd_val(pmd) & ~PAGE_MASK) argument
96 static inline int pmd_present(pmd_t pmd) in pmd_present() argument
98 return pmd_val(pmd) != (unsigned long) invalid_pte_table; in pmd_present()
/linux-4.4.14/arch/x86/include/asm/
Dpgtable.h48 #define set_pmd_at(mm, addr, pmdp, pmd) native_set_pmd_at(mm, addr, pmdp, pmd) argument
53 #define set_pmd(pmdp, pmd) native_set_pmd(pmdp, pmd) argument
69 #define pmd_clear(pmd) native_pmd_clear(pmd) argument
110 static inline int pmd_dirty(pmd_t pmd) in pmd_dirty() argument
112 return pmd_flags(pmd) & _PAGE_DIRTY; in pmd_dirty()
115 static inline int pmd_young(pmd_t pmd) in pmd_young() argument
117 return pmd_flags(pmd) & _PAGE_ACCESSED; in pmd_young()
150 static inline unsigned long pmd_pfn(pmd_t pmd) in pmd_pfn() argument
152 return (pmd_val(pmd) & pmd_pfn_mask(pmd)) >> PAGE_SHIFT; in pmd_pfn()
168 static inline int pmd_trans_splitting(pmd_t pmd) in pmd_trans_splitting() argument
[all …]
Dpgalloc.h63 pmd_t *pmd, pte_t *pte) in pmd_populate_kernel() argument
66 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE)); in pmd_populate_kernel()
69 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, in pmd_populate() argument
75 set_pmd(pmd, __pmd(((pteval_t)pfn << PAGE_SHIFT) | _PAGE_TABLE)); in pmd_populate()
78 #define pmd_pgtable(pmd) pmd_page(pmd) argument
94 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) in pmd_free() argument
96 BUG_ON((unsigned long)pmd & (PAGE_SIZE-1)); in pmd_free()
97 pgtable_pmd_page_dtor(virt_to_page(pmd)); in pmd_free()
98 free_page((unsigned long)pmd); in pmd_free()
101 extern void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd);
[all …]
Dpgtable_types.h259 typedef struct { pmdval_t pmd; } pmd_t; member
266 static inline pmdval_t native_pmd_val(pmd_t pmd) in native_pmd_val() argument
268 return pmd.pmd; in native_pmd_val()
273 static inline pmdval_t native_pmd_val(pmd_t pmd) in native_pmd_val() argument
275 return native_pgd_val(pmd.pud.pgd); in native_pmd_val()
297 static inline pmdval_t pmd_pfn_mask(pmd_t pmd) in pmd_pfn_mask() argument
299 if (native_pmd_val(pmd) & _PAGE_PSE) in pmd_pfn_mask()
305 static inline pmdval_t pmd_flags_mask(pmd_t pmd) in pmd_flags_mask() argument
307 return ~pmd_pfn_mask(pmd); in pmd_flags_mask()
310 static inline pmdval_t pmd_flags(pmd_t pmd) in pmd_flags() argument
[all …]
Dpgtable-3level.h93 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) in native_set_pmd() argument
95 set_64bit((unsigned long long *)(pmdp), native_pmd_val(pmd)); in native_set_pmd()
116 static inline void native_pmd_clear(pmd_t *pmd) in native_pmd_clear() argument
118 u32 *tmp = (u32 *)pmd; in native_pmd_clear()
162 pmd_t pmd; member
173 return res.pmd; in native_pmdp_get_and_clear()
Dpgtable_64.h63 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) in native_set_pmd() argument
65 *pmdp = pmd; in native_set_pmd()
68 static inline void native_pmd_clear(pmd_t *pmd) in native_pmd_clear() argument
70 native_set_pmd(pmd, native_make_pmd(0)); in native_pmd_clear()
89 return native_make_pmd(xchg(&xp->pmd, 0)); in native_pmdp_get_and_clear()
Dparavirt.h504 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument
508 pv_mmu_ops.set_pmd_at(mm, addr, pmdp, pmd); in set_pmd_at()
511 native_pmd_val(pmd)); in set_pmd_at()
514 static inline void set_pmd(pmd_t *pmdp, pmd_t pmd) in set_pmd() argument
516 pmdval_t val = native_pmd_val(pmd); in set_pmd()
539 static inline pmdval_t pmd_val(pmd_t pmd) in pmd_val() argument
545 pmd.pmd, (u64)pmd.pmd >> 32); in pmd_val()
548 pmd.pmd); in pmd_val()
/linux-4.4.14/arch/tile/include/asm/
Dpgtable.h366 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
372 return (unsigned long)pmd_val(pmd) == 0; in pmd_none()
375 static inline int pmd_present(pmd_t pmd) in pmd_present() argument
377 return pmd_val(pmd) & _PAGE_PRESENT; in pmd_present()
380 static inline int pmd_bad(pmd_t pmd) in pmd_bad() argument
382 return ((pmd_val(pmd) & _PAGE_ALL) != _PAGE_TABLE); in pmd_bad()
439 #define pmd_ptfn(pmd) hv_pte_get_ptfn(pmd_pte(pmd)) argument
447 static inline unsigned long pmd_page_vaddr(pmd_t pmd) in pmd_page_vaddr() argument
450 (phys_addr_t)pmd_ptfn(pmd) << HV_LOG2_PAGE_TABLE_ALIGN; in pmd_page_vaddr()
461 #define pmd_page(pmd) pfn_to_page(PFN_DOWN(HV_PTFN_TO_CPA(pmd_ptfn(pmd)))) argument
[all …]
Dpgalloc.h41 static inline void set_pmd(pmd_t *pmdp, pmd_t pmd) in set_pmd() argument
44 set_pte(pmdp, pmd); in set_pmd()
46 set_pte(&pmdp->pud.pgd, pmd.pud.pgd); in set_pmd()
51 pmd_t *pmd, pte_t *ptep) in pmd_populate_kernel() argument
53 set_pmd(pmd, ptfn_pmd(HV_CPA_TO_PTFN(__pa(ptep)), in pmd_populate_kernel()
57 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, in pmd_populate() argument
60 set_pmd(pmd, ptfn_pmd(HV_CPA_TO_PTFN(PFN_PHYS(page_to_pfn(page))), in pmd_populate()
86 #define pmd_pgtable(pmd) pmd_page(pmd) argument
118 void shatter_pmd(pmd_t *pmd);
125 #define pud_populate(mm, pud, pmd) \ argument
[all …]
/linux-4.4.14/arch/powerpc/include/asm/
Dpgtable-ppc64.h152 #define pmd_none(pmd) (!pmd_val(pmd)) argument
153 #define pmd_bad(pmd) (!is_kernel_addr(pmd_val(pmd)) \ argument
154 || (pmd_val(pmd) & PMD_BAD_BITS))
155 #define pmd_present(pmd) (!pmd_none(pmd)) argument
157 #define pmd_page_vaddr(pmd) (pmd_val(pmd) & ~PMD_MASKED_BITS) argument
158 extern struct page *pmd_page(pmd_t pmd);
445 extern pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot);
447 pmd_t *pmdp, pmd_t pmd);
449 pmd_t *pmd);
466 static inline int pmd_trans_huge(pmd_t pmd) in pmd_trans_huge() argument
[all …]
Dpgalloc-64.h69 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) in pud_populate() argument
71 pud_set(pud, (unsigned long)pmd); in pud_populate()
74 #define pmd_populate(mm, pmd, pte_page) \ argument
75 pmd_populate_kernel(mm, pmd, page_address(pte_page))
76 #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, (unsigned long)(pte)) argument
77 #define pmd_pgtable(pmd) pmd_page(pmd) argument
175 #define pud_populate(mm, pud, pmd) pud_set(pud, (unsigned long)pmd) argument
177 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, in pmd_populate_kernel() argument
180 pmd_set(pmd, (unsigned long)pte); in pmd_populate_kernel()
183 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, in pmd_populate() argument
[all …]
Dpgalloc-32.h9 extern void __bad_pte(pmd_t *pmd);
24 #define pmd_populate_kernel(mm, pmd, pte) \ argument
25 (pmd_val(*(pmd)) = __pa(pte) | _PMD_PRESENT)
26 #define pmd_populate(mm, pmd, pte) \ argument
27 (pmd_val(*(pmd)) = (page_to_pfn(pte) << PAGE_SHIFT) | _PMD_PRESENT)
28 #define pmd_pgtable(pmd) pmd_page(pmd) argument
30 #define pmd_populate_kernel(mm, pmd, pte) \ argument
31 (pmd_val(*(pmd)) = (unsigned long)pte | _PMD_PRESENT)
32 #define pmd_populate(mm, pmd, pte) \ argument
33 (pmd_val(*(pmd)) = (unsigned long)lowmem_page_address(pte) | _PMD_PRESENT)
[all …]
Dpgtable-ppc32.h130 #define pmd_none(pmd) (!pmd_val(pmd)) argument
131 #define pmd_bad(pmd) (pmd_val(pmd) & _PMD_BAD) argument
132 #define pmd_present(pmd) (pmd_val(pmd) & _PMD_PRESENT_MASK) argument
287 #define pmd_page_vaddr(pmd) \ argument
288 ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK))
289 #define pmd_page(pmd) \ argument
290 pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)
292 #define pmd_page_vaddr(pmd) \ argument
293 ((unsigned long) (pmd_val(pmd) & PAGE_MASK))
294 #define pmd_page(pmd) \ argument
[all …]
/linux-4.4.14/arch/parisc/include/asm/
Dpgalloc.h58 static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd) in pgd_populate() argument
61 (__u32)(__pa((unsigned long)pmd) >> PxD_VALUE_SHIFT)); in pgd_populate()
66 pmd_t *pmd = (pmd_t *)__get_free_pages(GFP_KERNEL|__GFP_REPEAT, in pmd_alloc_one() local
68 if (pmd) in pmd_alloc_one()
69 memset(pmd, 0, PAGE_SIZE<<PMD_ORDER); in pmd_alloc_one()
70 return pmd; in pmd_alloc_one()
73 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) in pmd_free() argument
75 if (pmd_flag(*pmd) & PxD_FLAG_ATTACHED) { in pmd_free()
85 free_pages((unsigned long)pmd, PMD_ORDER); in pmd_free()
99 #define pgd_populate(mm, pmd, pte) BUG() argument
[all …]
Dpgtable.h310 static inline void pmd_clear(pmd_t *pmd) { in pmd_clear() argument
312 if (pmd_flag(*pmd) & PxD_FLAG_ATTACHED) in pmd_clear()
315 __pmd_val_set(*pmd, PxD_FLAG_ATTACHED); in pmd_clear()
318 __pmd_val_set(*pmd, 0); in pmd_clear()
414 #define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_address(pmd))) argument
416 #define __pmd_page(pmd) ((unsigned long) __va(pmd_address(pmd))) argument
417 #define pmd_page(pmd) virt_to_page((void *)__pmd_page(pmd)) argument
440 #define pte_offset_kernel(pmd, address) \ argument
441 ((pte_t *) pmd_page_vaddr(*(pmd)) + pte_index(address))
442 #define pte_offset_map(pmd, address) pte_offset_kernel(pmd, address) argument
Dtlb.h24 #define __pmd_free_tlb(tlb, pmd, addr) pmd_free((tlb)->mm, pmd) argument
Dpage.h44 typedef struct { __u32 pmd; } pmd_t; member
50 #define pmd_val(x) ((x).pmd + 0)
59 #define __pmd_val_set(x,n) (x).pmd = (n)
/linux-4.4.14/arch/s390/include/asm/
Dpgtable.h494 static inline int pmd_present(pmd_t pmd) in pmd_present() argument
496 return pmd_val(pmd) != _SEGMENT_ENTRY_INVALID; in pmd_present()
499 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
501 return pmd_val(pmd) == _SEGMENT_ENTRY_INVALID; in pmd_none()
504 static inline int pmd_large(pmd_t pmd) in pmd_large() argument
506 return (pmd_val(pmd) & _SEGMENT_ENTRY_LARGE) != 0; in pmd_large()
509 static inline unsigned long pmd_pfn(pmd_t pmd) in pmd_pfn() argument
514 if (pmd_large(pmd)) in pmd_pfn()
516 return (pmd_val(pmd) & origin_mask) >> PAGE_SHIFT; in pmd_pfn()
519 static inline int pmd_bad(pmd_t pmd) in pmd_bad() argument
[all …]
Dpgalloc.h85 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) in pmd_free() argument
87 pgtable_pmd_page_dtor(virt_to_page(pmd)); in pmd_free()
88 crst_table_free(mm, (unsigned long *) pmd); in pmd_free()
96 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) in pud_populate() argument
98 pud_val(*pud) = _REGION3_ENTRY | __pa(pmd); in pud_populate()
125 pmd_t *pmd, pgtable_t pte) in pmd_populate() argument
127 pmd_val(*pmd) = _SEGMENT_ENTRY + __pa(pte); in pmd_populate()
130 #define pmd_populate_kernel(mm, pmd, pte) pmd_populate(mm, pmd, pte) argument
132 #define pmd_pgtable(pmd) \ argument
133 (pgtable_t)(pmd_val(pmd) & -sizeof(pte_t)*PTRS_PER_PTE)
Dtlb.h118 static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, in pmd_free_tlb() argument
123 pgtable_pmd_page_dtor(virt_to_page(pmd)); in pmd_free_tlb()
124 tlb_remove_table(tlb, pmd); in pmd_free_tlb()
/linux-4.4.14/arch/x86/mm/
Dinit_64.c64 pmd_t *pmd = pmd_page + pmd_index(addr); in ident_pmd_init() local
66 if (!pmd_present(*pmd)) in ident_pmd_init()
67 set_pmd(pmd, __pmd(addr | pmd_flag)); in ident_pmd_init()
77 pmd_t *pmd; in ident_pud_init() local
84 pmd = pmd_offset(pud, 0); in ident_pud_init()
85 ident_pmd_init(info->pmd_flag, pmd, addr, next); in ident_pud_init()
88 pmd = (pmd_t *)info->alloc_pgt_page(info->context); in ident_pud_init()
89 if (!pmd) in ident_pud_init()
91 ident_pmd_init(info->pmd_flag, pmd, addr, next); in ident_pud_init()
92 set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE)); in ident_pud_init()
[all …]
Dinit_32.c95 static pte_t * __init one_page_table_init(pmd_t *pmd) in one_page_table_init() argument
97 if (!(pmd_val(*pmd) & _PAGE_PRESENT)) { in one_page_table_init()
101 set_pmd(pmd, __pmd(__pa(page_table) | _PAGE_TABLE)); in one_page_table_init()
102 BUG_ON(page_table != pte_offset_kernel(pmd, 0)); in one_page_table_init()
105 return pte_offset_kernel(pmd, 0); in one_page_table_init()
119 pmd_t *pmd; in populate_extra_pte() local
121 pmd = populate_extra_pmd(vaddr); in populate_extra_pte()
122 return one_page_table_init(pmd) + pte_idx; in populate_extra_pte()
156 static pte_t *__init page_table_kmap_check(pte_t *pte, pmd_t *pmd, in page_table_kmap_check() argument
183 set_pmd(pmd, __pmd(__pa(newpte)|_PAGE_TABLE)); in page_table_kmap_check()
[all …]
Dpgtable.c63 void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd) in ___pmd_free_tlb() argument
65 struct page *page = virt_to_page(pmd); in ___pmd_free_tlb()
66 paravirt_release_pmd(__pa(pmd) >> PAGE_SHIFT); in ___pmd_free_tlb()
171 void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd) in pud_populate() argument
173 paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT); in pud_populate()
177 set_pud(pudp, __pud(__pa(pmd) | _PAGE_PRESENT)); in pud_populate()
212 pmd_t *pmd = (pmd_t *)__get_free_page(PGALLOC_GFP); in preallocate_pmds() local
213 if (!pmd) in preallocate_pmds()
215 if (pmd && !pgtable_pmd_page_ctor(virt_to_page(pmd))) { in preallocate_pmds()
216 free_page((unsigned long)pmd); in preallocate_pmds()
[all …]
Dgup.c71 static noinline int gup_pte_range(pmd_t pmd, unsigned long addr, in gup_pte_range() argument
81 ptep = pte_offset_map(&pmd, addr); in gup_pte_range()
117 static noinline int gup_huge_pmd(pmd_t pmd, unsigned long addr, in gup_huge_pmd() argument
127 if ((pmd_flags(pmd) & mask) != mask) in gup_huge_pmd()
130 VM_BUG_ON(pmd_flags(pmd) & _PAGE_SPECIAL); in gup_huge_pmd()
131 VM_BUG_ON(!pfn_valid(pmd_pfn(pmd))); in gup_huge_pmd()
134 head = pmd_page(pmd); in gup_huge_pmd()
158 pmd_t pmd = *pmdp; in gup_pmd_range() local
172 if (pmd_none(pmd) || pmd_trans_splitting(pmd)) in gup_pmd_range()
174 if (unlikely(pmd_large(pmd) || !pmd_present(pmd))) { in gup_pmd_range()
[all …]
Dfault.c199 pmd_t *pmd, *pmd_k; in vmalloc_sync_one() local
217 pmd = pmd_offset(pud, address); in vmalloc_sync_one()
222 if (!pmd_present(*pmd)) in vmalloc_sync_one()
223 set_pmd(pmd, *pmd_k); in vmalloc_sync_one()
225 BUG_ON(pmd_page(*pmd) != pmd_page(*pmd_k)); in vmalloc_sync_one()
329 pmd_t *pmd; in dump_pagetable() local
337 pmd = pmd_offset(pud_offset(pgd, address), address); in dump_pagetable()
338 printk(KERN_CONT "*pde = %0*Lx ", sizeof(*pmd) * 2, (u64)pmd_val(*pmd)); in dump_pagetable()
346 if (!low_pfn(pmd_pfn(*pmd)) || !pmd_present(*pmd) || pmd_large(*pmd)) in dump_pagetable()
349 pte = pte_offset_kernel(pmd, address); in dump_pagetable()
[all …]
Dpageattr.c331 pmd_t *pmd; in lookup_address_in_pgd() local
346 pmd = pmd_offset(pud, address); in lookup_address_in_pgd()
347 if (pmd_none(*pmd)) in lookup_address_in_pgd()
351 if (pmd_large(*pmd) || !pmd_present(*pmd)) in lookup_address_in_pgd()
352 return (pte_t *)pmd; in lookup_address_in_pgd()
356 return pte_offset_kernel(pmd, address); in lookup_address_in_pgd()
462 pmd_t *pmd; in __set_pmd_pte() local
466 pmd = pmd_offset(pud, address); in __set_pmd_pte()
467 set_pte_atomic((pte_t *)pmd, pte); in __set_pmd_pte()
738 static bool try_to_free_pmd_page(pmd_t *pmd) in try_to_free_pmd_page() argument
[all …]
Dpgtable_32.c31 pmd_t *pmd; in set_pte_vaddr() local
44 pmd = pmd_offset(pud, vaddr); in set_pte_vaddr()
45 if (pmd_none(*pmd)) { in set_pte_vaddr()
49 pte = pte_offset_kernel(pmd, vaddr); in set_pte_vaddr()
Dioremap.c430 pmd_t *pmd = pmd_offset(pud, addr); in early_ioremap_pmd() local
432 return pmd; in early_ioremap_pmd()
447 pmd_t *pmd; in early_ioremap_init() local
457 pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); in early_ioremap_init()
459 pmd_populate_kernel(&init_mm, pmd, bm_pte); in early_ioremap_init()
469 if (pmd != early_ioremap_pmd(fix_to_virt(FIX_BTMAP_END))) { in early_ioremap_init()
472 pmd, early_ioremap_pmd(fix_to_virt(FIX_BTMAP_END))); in early_ioremap_init()
Dhugetlbpage.c45 int pmd_huge(pmd_t pmd)
62 int pmd_huge(pmd_t pmd) in pmd_huge() argument
64 return !pmd_none(pmd) && in pmd_huge()
65 (pmd_val(pmd) & (_PAGE_PRESENT|_PAGE_PSE)) != _PAGE_PRESENT; in pmd_huge()
/linux-4.4.14/arch/arm64/include/asm/
Dpgtable.h320 static inline pte_t pmd_pte(pmd_t pmd) in pmd_pte() argument
322 return __pte(pmd_val(pmd)); in pmd_pte()
340 #define pmd_trans_huge(pmd) (pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT)) argument
341 #define pmd_trans_splitting(pmd) pte_special(pmd_pte(pmd)) argument
350 #define pmd_present(pmd) pte_present(pmd_pte(pmd)) argument
351 #define pmd_dirty(pmd) pte_dirty(pmd_pte(pmd)) argument
352 #define pmd_young(pmd) pte_young(pmd_pte(pmd)) argument
353 #define pmd_wrprotect(pmd) pte_pmd(pte_wrprotect(pmd_pte(pmd))) argument
354 #define pmd_mksplitting(pmd) pte_pmd(pte_mkspecial(pmd_pte(pmd))) argument
355 #define pmd_mkold(pmd) pte_pmd(pte_mkold(pmd_pte(pmd))) argument
[all …]
Dkvm_mmu.h105 #define kvm_set_pmd(pmdp, pmd) set_pmd(pmdp, pmd)
108 static inline void kvm_clean_pmd(pmd_t *pmd) {}
109 static inline void kvm_clean_pmd_entry(pmd_t *pmd) {}
118 static inline void kvm_set_s2pmd_writable(pmd_t *pmd)
120 pmd_val(*pmd) |= PMD_S2_RDWR;
133 static inline void kvm_set_s2pmd_readonly(pmd_t *pmd)
135 pmd_val(*pmd) = (pmd_val(*pmd) & ~PMD_S2_RDWR) | PMD_S2_RDONLY;
138 static inline bool kvm_s2pmd_readonly(pmd_t *pmd)
140 return (pmd_val(*pmd) & PMD_S2_RDWR) == PMD_S2_RDONLY;
257 static inline void __kvm_flush_dcache_pmd(pmd_t pmd)
[all …]
Dpgalloc.h39 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) in pmd_free() argument
41 BUG_ON((unsigned long)pmd & (PAGE_SIZE-1)); in pmd_free()
42 free_page((unsigned long)pmd); in pmd_free()
45 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) in pud_populate() argument
47 set_pud(pud, __pud(__pa(pmd) | PMD_TYPE_TABLE)); in pud_populate()
135 #define pmd_pgtable(pmd) pmd_page(pmd) argument
/linux-4.4.14/arch/arm/mm/
Didmap.c24 pmd_t *pmd; in idmap_add_pmd() local
28 pmd = pmd_alloc_one(&init_mm, addr); in idmap_add_pmd()
29 if (!pmd) { in idmap_add_pmd()
38 memcpy(pmd, pmd_offset(pud, 0), in idmap_add_pmd()
40 pud_populate(&init_mm, pud, pmd); in idmap_add_pmd()
41 pmd += pmd_index(addr); in idmap_add_pmd()
43 pmd = pmd_offset(pud, addr); in idmap_add_pmd()
47 *pmd = __pmd((addr & PMD_MASK) | prot); in idmap_add_pmd()
48 flush_pmd_entry(pmd); in idmap_add_pmd()
49 } while (pmd++, addr = next, addr != end); in idmap_add_pmd()
[all …]
Dioremap.c151 pmd_t pmd = *pmdp; in unmap_area_sections() local
153 if (!pmd_none(pmd)) { in unmap_area_sections()
167 if ((pmd_val(pmd) & PMD_TYPE_MASK) == PMD_TYPE_TABLE) in unmap_area_sections()
168 pte_free_kernel(&init_mm, pmd_page_vaddr(pmd)); in unmap_area_sections()
192 pmd_t *pmd; in remap_area_sections() local
202 pmd = pmd_offset(pud, addr); in remap_area_sections()
204 pmd[0] = __pmd(__pfn_to_phys(pfn) | type->prot_sect); in remap_area_sections()
206 pmd[1] = __pmd(__pfn_to_phys(pfn) | type->prot_sect); in remap_area_sections()
208 flush_pmd_entry(pmd); in remap_area_sections()
211 pmd += 2; in remap_area_sections()
[all …]
Dpgd.c123 pmd_t *pmd; in pgd_free() local
137 pmd = pmd_offset(pud, 0); in pgd_free()
138 if (pmd_none_or_clear_bad(pmd)) in pgd_free()
141 pte = pmd_pgtable(*pmd); in pgd_free()
142 pmd_clear(pmd); in pgd_free()
147 pmd_free(mm, pmd); in pgd_free()
165 pmd = pmd_offset(pud, 0); in pgd_free()
167 pmd_free(mm, pmd); in pgd_free()
Dmmu.c79 pmdval_t pmd; member
94 .pmd = PMD_SECT_UNCACHED,
100 .pmd = PMD_SECT_BUFFERED,
106 .pmd = PMD_SECT_WT,
112 .pmd = PMD_SECT_WB,
118 .pmd = PMD_SECT_WBWA,
134 void __init init_default_cache_policy(unsigned long pmd) in init_default_cache_policy() argument
138 initial_pmd_value = pmd; in init_default_cache_policy()
140 pmd &= PMD_SECT_TEX(1) | PMD_SECT_BUFFERABLE | PMD_SECT_CACHEABLE; in init_default_cache_policy()
143 if (cache_policies[i].pmd == pmd) { in init_default_cache_policy()
[all …]
Ddump.c257 static void walk_pte(struct pg_state *st, pmd_t *pmd, unsigned long start) in walk_pte() argument
259 pte_t *pte = pte_offset_kernel(pmd, 0); in walk_pte()
271 pmd_t *pmd = pmd_offset(pud, 0); in walk_pmd() local
275 for (i = 0; i < PTRS_PER_PMD; i++, pmd++) { in walk_pmd()
277 if (pmd_none(*pmd) || pmd_large(*pmd) || !pmd_present(*pmd)) in walk_pmd()
278 note_page(st, addr, 3, pmd_val(*pmd)); in walk_pmd()
280 walk_pte(st, pmd, addr); in walk_pmd()
282 if (SECTION_SIZE < PMD_SIZE && pmd_large(pmd[1])) in walk_pmd()
283 note_page(st, addr + SECTION_SIZE, 3, pmd_val(pmd[1])); in walk_pmd()
Dhugetlbpage.c44 int pmd_huge(pmd_t pmd) in pmd_huge() argument
46 return pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT); in pmd_huge()
Dfault.c73 pmd_t *pmd; in show_pte() local
96 pmd = pmd_offset(pud, addr); in show_pte()
98 pr_cont(", *pmd=%08llx", (long long)pmd_val(*pmd)); in show_pte()
100 if (pmd_none(*pmd)) in show_pte()
103 if (pmd_bad(*pmd)) { in show_pte()
109 if (PageHighMem(pfn_to_page(pmd_val(*pmd) >> PAGE_SHIFT))) in show_pte()
112 pte = pte_offset_map(pmd, addr); in show_pte()
428 pmd_t *pmd, *pmd_k; in do_translation_fault() local
454 pmd = pmd_offset(pud, addr); in do_translation_fault()
476 copy_pmd(pmd, pmd_k); in do_translation_fault()
Dfault-armv.c98 pmd_t *pmd; in adjust_pte() local
110 pmd = pmd_offset(pud, address); in adjust_pte()
111 if (pmd_none_or_clear_bad(pmd)) in adjust_pte()
119 ptl = pte_lockptr(vma->vm_mm, pmd); in adjust_pte()
120 pte = pte_offset_map(pmd, address); in adjust_pte()
Dinit.c633 pmd_t *pmd; in section_update() local
635 pmd = pmd_offset(pud_offset(pgd_offset(mm, addr), addr), addr); in section_update()
638 pmd[0] = __pmd((pmd_val(pmd[0]) & mask) | prot); in section_update()
641 pmd[1] = __pmd((pmd_val(pmd[1]) & mask) | prot); in section_update()
643 pmd[0] = __pmd((pmd_val(pmd[0]) & mask) | prot); in section_update()
645 flush_pmd_entry(pmd); in section_update()
/linux-4.4.14/arch/arm/kvm/
Dmmu.c91 static void kvm_flush_dcache_pmd(pmd_t pmd) in kvm_flush_dcache_pmd() argument
93 __kvm_flush_dcache_pmd(pmd); in kvm_flush_dcache_pmd()
115 static void stage2_dissolve_pmd(struct kvm *kvm, phys_addr_t addr, pmd_t *pmd) in stage2_dissolve_pmd() argument
117 if (!kvm_pmd_huge(*pmd)) in stage2_dissolve_pmd()
120 pmd_clear(pmd); in stage2_dissolve_pmd()
122 put_page(virt_to_page(pmd)); in stage2_dissolve_pmd()
176 static void clear_pmd_entry(struct kvm *kvm, pmd_t *pmd, phys_addr_t addr) in clear_pmd_entry() argument
178 pte_t *pte_table = pte_offset_kernel(pmd, 0); in clear_pmd_entry()
179 VM_BUG_ON(kvm_pmd_huge(*pmd)); in clear_pmd_entry()
180 pmd_clear(pmd); in clear_pmd_entry()
[all …]
/linux-4.4.14/arch/arm64/mm/
Dmmu.c80 static void split_pmd(pmd_t *pmd, pte_t *pte) in split_pmd() argument
82 unsigned long pfn = pmd_pfn(*pmd); in split_pmd()
95 static void alloc_init_pte(pmd_t *pmd, unsigned long addr, in alloc_init_pte() argument
102 if (pmd_none(*pmd) || pmd_sect(*pmd)) { in alloc_init_pte()
104 if (pmd_sect(*pmd)) in alloc_init_pte()
105 split_pmd(pmd, pte); in alloc_init_pte()
106 __pmd_populate(pmd, __pa(pte), PMD_TYPE_TABLE); in alloc_init_pte()
109 BUG_ON(pmd_bad(*pmd)); in alloc_init_pte()
111 pte = pte_offset_kernel(pmd, addr); in alloc_init_pte()
118 static void split_pud(pud_t *old_pud, pmd_t *pmd) in split_pud() argument
[all …]
Dkasan_init.c26 static void __init kasan_early_pte_populate(pmd_t *pmd, unsigned long addr, in kasan_early_pte_populate() argument
32 if (pmd_none(*pmd)) in kasan_early_pte_populate()
33 pmd_populate_kernel(&init_mm, pmd, kasan_zero_pte); in kasan_early_pte_populate()
35 pte = pte_offset_kernel(pmd, addr); in kasan_early_pte_populate()
47 pmd_t *pmd; in kasan_early_pmd_populate() local
53 pmd = pmd_offset(pud, addr); in kasan_early_pmd_populate()
56 kasan_early_pte_populate(pmd, addr, next); in kasan_early_pmd_populate()
57 } while (pmd++, addr = next, addr != end && pmd_none(*pmd)); in kasan_early_pmd_populate()
Ddump.c249 static void walk_pte(struct pg_state *st, pmd_t *pmd, unsigned long start) in walk_pte() argument
251 pte_t *pte = pte_offset_kernel(pmd, 0); in walk_pte()
263 pmd_t *pmd = pmd_offset(pud, 0); in walk_pmd() local
267 for (i = 0; i < PTRS_PER_PMD; i++, pmd++) { in walk_pmd()
269 if (pmd_none(*pmd) || pmd_sect(*pmd)) { in walk_pmd()
270 note_page(st, addr, 3, pmd_val(*pmd)); in walk_pmd()
272 BUG_ON(pmd_bad(*pmd)); in walk_pmd()
273 walk_pte(st, pmd, addr); in walk_pmd()
Dhugetlbpage.c30 int pmd_huge(pmd_t pmd) in pmd_huge() argument
32 return pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT); in pmd_huge()
/linux-4.4.14/mm/
Dhuge_memory.c699 pmd_t maybe_pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma) in maybe_pmd_mkwrite() argument
702 pmd = pmd_mkwrite(pmd); in maybe_pmd_mkwrite()
703 return pmd; in maybe_pmd_mkwrite()
716 unsigned long address, pmd_t *pmd, in __do_huge_pmd_anonymous_page() argument
748 ptl = pmd_lock(mm, pmd); in __do_huge_pmd_anonymous_page()
749 if (unlikely(!pmd_none(*pmd))) { in __do_huge_pmd_anonymous_page()
776 pgtable_trans_huge_deposit(mm, pmd, pgtable); in __do_huge_pmd_anonymous_page()
777 set_pmd_at(mm, haddr, pmd, entry); in __do_huge_pmd_anonymous_page()
794 struct vm_area_struct *vma, unsigned long haddr, pmd_t *pmd, in set_huge_zero_page() argument
798 if (!pmd_none(*pmd)) in set_huge_zero_page()
[all …]
Dpgtable-generic.c31 void pmd_clear_bad(pmd_t *pmd) in pmd_clear_bad() argument
33 pmd_ERROR(*pmd); in pmd_clear_bad()
34 pmd_clear(pmd); in pmd_clear_bad()
133 pmd_t pmd; in pmdp_huge_clear_flush() local
136 pmd = pmdp_huge_get_and_clear(vma->vm_mm, address, pmdp); in pmdp_huge_clear_flush()
138 return pmd; in pmdp_huge_clear_flush()
146 pmd_t pmd = pmd_mksplitting(*pmdp); in pmdp_splitting_flush() local
148 set_pmd_at(vma->vm_mm, address, pmdp, pmd); in pmdp_splitting_flush()
208 pmd_t pmd; in pmdp_collapse_flush() local
212 pmd = pmdp_huge_get_and_clear(vma->vm_mm, address, pmdp); in pmdp_collapse_flush()
[all …]
Dmemory.c392 static void free_pte_range(struct mmu_gather *tlb, pmd_t *pmd, in free_pte_range() argument
395 pgtable_t token = pmd_pgtable(*pmd); in free_pte_range()
396 pmd_clear(pmd); in free_pte_range()
405 pmd_t *pmd; in free_pmd_range() local
410 pmd = pmd_offset(pud, addr); in free_pmd_range()
413 if (pmd_none_or_clear_bad(pmd)) in free_pmd_range()
415 free_pte_range(tlb, pmd, addr); in free_pmd_range()
416 } while (pmd++, addr = next, addr != end); in free_pmd_range()
429 pmd = pmd_offset(pud, start); in free_pmd_range()
431 pmd_free_tlb(tlb, pmd, start); in free_pmd_range()
[all …]
Dmprotect.c41 static pte_t *lock_pte_protection(struct vm_area_struct *vma, pmd_t *pmd, in lock_pte_protection() argument
49 return pte_offset_map_lock(vma->vm_mm, pmd, addr, ptl); in lock_pte_protection()
51 pmdl = pmd_lock(vma->vm_mm, pmd); in lock_pte_protection()
52 if (unlikely(pmd_trans_huge(*pmd) || pmd_none(*pmd))) { in lock_pte_protection()
57 pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, ptl); in lock_pte_protection()
62 static unsigned long change_pte_range(struct vm_area_struct *vma, pmd_t *pmd, in change_pte_range() argument
71 pte = lock_pte_protection(vma, pmd, addr, prot_numa, &ptl); in change_pte_range()
140 pmd_t *pmd; in change_pmd_range() local
147 pmd = pmd_offset(pud, addr); in change_pmd_range()
152 if (!pmd_trans_huge(*pmd) && pmd_none_or_clear_bad(pmd)) in change_pmd_range()
[all …]
Dgup.c62 unsigned long address, pmd_t *pmd, unsigned int flags) in follow_page_pte() argument
70 if (unlikely(pmd_bad(*pmd))) in follow_page_pte()
73 ptep = pte_offset_map_lock(mm, pmd, address, &ptl); in follow_page_pte()
90 migration_entry_wait(mm, pmd, address); in follow_page_pte()
183 pmd_t *pmd; in follow_page_mask() local
212 pmd = pmd_offset(pud, address); in follow_page_mask()
213 if (pmd_none(*pmd)) in follow_page_mask()
215 if (pmd_huge(*pmd) && vma->vm_flags & VM_HUGETLB) { in follow_page_mask()
216 page = follow_huge_pmd(mm, address, pmd, flags); in follow_page_mask()
221 if ((flags & FOLL_NUMA) && pmd_protnone(*pmd)) in follow_page_mask()
[all …]
Dsparse-vmemmap.c101 pte_t * __meminit vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node) in vmemmap_pte_populate() argument
103 pte_t *pte = pte_offset_kernel(pmd, addr); in vmemmap_pte_populate()
117 pmd_t *pmd = pmd_offset(pud, addr); in vmemmap_pmd_populate() local
118 if (pmd_none(*pmd)) { in vmemmap_pmd_populate()
122 pmd_populate_kernel(&init_mm, pmd, p); in vmemmap_pmd_populate()
124 return pmd; in vmemmap_pmd_populate()
157 pmd_t *pmd; in vmemmap_populate_basepages() local
167 pmd = vmemmap_pmd_populate(pud, addr, node); in vmemmap_populate_basepages()
168 if (!pmd) in vmemmap_populate_basepages()
170 pte = vmemmap_pte_populate(pmd, addr, node); in vmemmap_populate_basepages()
Dpagewalk.c6 static int walk_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, in walk_pte_range() argument
12 pte = pte_offset_map(pmd, addr); in walk_pte_range()
30 pmd_t *pmd; in walk_pmd_range() local
34 pmd = pmd_offset(pud, addr); in walk_pmd_range()
38 if (pmd_none(*pmd) || !walk->vma) { in walk_pmd_range()
50 err = walk->pmd_entry(pmd, addr, next, walk); in walk_pmd_range()
61 split_huge_page_pmd_mm(walk->mm, addr, pmd); in walk_pmd_range()
62 if (pmd_trans_unstable(pmd)) in walk_pmd_range()
64 err = walk_pte_range(pmd, addr, next, walk); in walk_pmd_range()
67 } while (pmd++, addr = next, addr != end); in walk_pmd_range()
Dmigrate.c111 pmd_t *pmd; in remove_migration_pte() local
121 pmd = mm_find_pmd(mm, addr); in remove_migration_pte()
122 if (!pmd) in remove_migration_pte()
125 ptep = pte_offset_map(pmd, addr); in remove_migration_pte()
132 ptl = pte_lockptr(mm, pmd); in remove_migration_pte()
239 void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd, in migration_entry_wait() argument
242 spinlock_t *ptl = pte_lockptr(mm, pmd); in migration_entry_wait()
243 pte_t *ptep = pte_offset_map(pmd, address); in migration_entry_wait()
1670 bool pmd_trans_migrating(pmd_t pmd) in pmd_trans_migrating() argument
1672 struct page *page = pmd_page(pmd); in pmd_trans_migrating()
[all …]
Dmremap.c36 pmd_t *pmd; in get_old_pmd() local
46 pmd = pmd_offset(pud, addr); in get_old_pmd()
47 if (pmd_none(*pmd)) in get_old_pmd()
50 return pmd; in get_old_pmd()
58 pmd_t *pmd; in alloc_new_pmd() local
65 pmd = pmd_alloc(mm, pud, addr); in alloc_new_pmd()
66 if (!pmd) in alloc_new_pmd()
69 VM_BUG_ON(pmd_trans_huge(*pmd)); in alloc_new_pmd()
71 return pmd; in alloc_new_pmd()
Dpage_idle.c59 pmd_t *pmd; in page_idle_clear_pte_refs_one() local
64 pmd = page_check_address_pmd(page, mm, addr, in page_idle_clear_pte_refs_one()
66 if (pmd) { in page_idle_clear_pte_refs_one()
67 referenced = pmdp_clear_young_notify(vma, addr, pmd); in page_idle_clear_pte_refs_one()
Dmincore.c111 static int mincore_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, in mincore_pte_range() argument
120 if (pmd_trans_huge_lock(pmd, vma, &ptl) == 1) { in mincore_pte_range()
126 if (pmd_trans_unstable(pmd)) { in mincore_pte_range()
131 ptep = pte_offset_map_lock(walk->mm, pmd, addr, &ptl); in mincore_pte_range()
/linux-4.4.14/mm/kasan/
Dkasan_init.c46 static void __init zero_pte_populate(pmd_t *pmd, unsigned long addr, in zero_pte_populate() argument
49 pte_t *pte = pte_offset_kernel(pmd, addr); in zero_pte_populate()
58 pte = pte_offset_kernel(pmd, addr); in zero_pte_populate()
65 pmd_t *pmd = pmd_offset(pud, addr); in zero_pmd_populate() local
72 pmd_populate_kernel(&init_mm, pmd, kasan_zero_pte); in zero_pmd_populate()
76 if (pmd_none(*pmd)) { in zero_pmd_populate()
77 pmd_populate_kernel(&init_mm, pmd, in zero_pmd_populate()
80 zero_pte_populate(pmd, addr, next); in zero_pmd_populate()
81 } while (pmd++, addr = next, addr != end); in zero_pmd_populate()
93 pmd_t *pmd; in zero_pud_populate() local
[all …]
/linux-4.4.14/include/linux/
Dhuge_mm.h6 unsigned long address, pmd_t *pmd,
13 unsigned long address, pmd_t *pmd,
16 unsigned long address, pmd_t *pmd,
20 pmd_t *pmd,
24 pmd_t *pmd, unsigned long addr);
25 extern int mincore_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,
33 extern int change_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,
104 unsigned long address, pmd_t *pmd);
121 pmd_t *pmd);
131 extern int __pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma,
[all …]
Dmigrate.h69 extern bool pmd_trans_migrating(pmd_t pmd);
73 static inline bool pmd_trans_migrating(pmd_t pmd) in pmd_trans_migrating() argument
87 pmd_t *pmd, pmd_t entry,
93 pmd_t *pmd, pmd_t entry, in migrate_misplaced_transhuge_page() argument
Dmm.h1088 pmd_t pmd);
1118 int (*pmd_entry)(pmd_t *pmd, unsigned long addr,
1482 pmd_t *pmd, unsigned long address);
1483 int __pte_alloc_kernel(pmd_t *pmd, unsigned long address);
1533 static inline spinlock_t *pte_lockptr(struct mm_struct *mm, pmd_t *pmd) in pte_lockptr() argument
1535 return ptlock_ptr(pmd_page(*pmd)); in pte_lockptr()
1565 static inline spinlock_t *pte_lockptr(struct mm_struct *mm, pmd_t *pmd) in pte_lockptr() argument
1594 #define pte_offset_map_lock(mm, pmd, address, ptlp) \ argument
1596 spinlock_t *__ptl = pte_lockptr(mm, pmd); \
1597 pte_t *__pte = pte_offset_map(pmd, address); \
[all …]
/linux-4.4.14/arch/sh/mm/
Dhugetlbpage.c29 pmd_t *pmd; in huge_pte_alloc() local
36 pmd = pmd_alloc(mm, pud, addr); in huge_pte_alloc()
37 if (pmd) in huge_pte_alloc()
38 pte = pte_alloc_map(mm, NULL, pmd, addr); in huge_pte_alloc()
49 pmd_t *pmd; in huge_pte_offset() local
56 pmd = pmd_offset(pud, addr); in huge_pte_offset()
57 if (pmd) in huge_pte_offset()
58 pte = pte_offset_map(pmd, addr); in huge_pte_offset()
65 int pmd_huge(pmd_t pmd) in pmd_huge() argument
Dinit.c49 pmd_t *pmd; in __get_pte_phys() local
63 pmd = pmd_alloc(NULL, pud, addr); in __get_pte_phys()
64 if (unlikely(!pmd)) { in __get_pte_phys()
65 pmd_ERROR(*pmd); in __get_pte_phys()
69 return pte_offset_kernel(pmd, addr); in __get_pte_phys()
129 pmd_t *pmd; in one_md_table_init() local
131 pmd = alloc_bootmem_pages(PAGE_SIZE); in one_md_table_init()
132 pud_populate(&init_mm, pud, pmd); in one_md_table_init()
133 BUG_ON(pmd != pmd_offset(pud, 0)); in one_md_table_init()
139 static pte_t * __init one_page_table_init(pmd_t *pmd) in one_page_table_init() argument
[all …]
Dfault.c78 pmd_t *pmd; in show_pte() local
102 pmd = pmd_offset(pud, addr); in show_pte()
104 printk(", *pmd=%0*Lx", (u32)(sizeof(*pmd) * 2), in show_pte()
105 (u64)pmd_val(*pmd)); in show_pte()
107 if (pmd_none(*pmd)) in show_pte()
110 if (pmd_bad(*pmd)) { in show_pte()
116 if (PageHighMem(pfn_to_page(pmd_val(*pmd) >> PAGE_SHIFT))) in show_pte()
119 pte = pte_offset_kernel(pmd, addr); in show_pte()
132 pmd_t *pmd, *pmd_k; in vmalloc_sync_one() local
148 pmd = pmd_offset(pud, address); in vmalloc_sync_one()
[all …]
Dtlbex_64.c48 pmd_t *pmd; in handle_tlbmiss() local
65 pmd = pmd_offset(pud, address); in handle_tlbmiss()
66 if (pmd_none(*pmd) || !pmd_present(*pmd)) in handle_tlbmiss()
69 pte = pte_offset_kernel(pmd, address); in handle_tlbmiss()
Dpgtable.c43 void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) in pud_populate() argument
45 set_pud(pud, __pud((unsigned long)pmd)); in pud_populate()
53 void pmd_free(struct mm_struct *mm, pmd_t *pmd) in pmd_free() argument
55 kmem_cache_free(pmd_cachep, pmd); in pmd_free()
Dtlbex_32.c27 pmd_t *pmd; in handle_tlbmiss() local
48 pmd = pmd_offset(pud, address); in handle_tlbmiss()
49 if (pmd_none_or_clear_bad(pmd)) in handle_tlbmiss()
51 pte = pte_offset_kernel(pmd, address); in handle_tlbmiss()
Dgup.c74 static noinline int gup_pte_range(pmd_t pmd, unsigned long addr, in gup_pte_range() argument
96 ptep = pte_offset_map(&pmd, addr); in gup_pte_range()
127 pmd_t pmd = *pmdp; in gup_pmd_range() local
130 if (pmd_none(pmd)) in gup_pmd_range()
132 if (!gup_pte_range(pmd, addr, next, write, pages, nr)) in gup_pmd_range()
/linux-4.4.14/arch/m68k/include/asm/
Dmotorola_pgalloc.h74 static inline int pmd_free(struct mm_struct *mm, pmd_t *pmd) in pmd_free() argument
76 return free_pointer_table(pmd); in pmd_free()
79 static inline int __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, in __pmd_free_tlb() argument
82 return free_pointer_table(pmd); in __pmd_free_tlb()
97 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) in pmd_populate_kernel() argument
99 pmd_set(pmd, pte); in pmd_populate_kernel()
102 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t page) in pmd_populate() argument
104 pmd_set(pmd, page_address(page)); in pmd_populate()
106 #define pmd_pgtable(pmd) pmd_page(pmd) argument
108 static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd) in pgd_populate() argument
[all …]
Dsun3_pgtable.h119 #define __pmd_page(pmd) \ argument
120 ((unsigned long) __va (pmd_val (pmd) & PAGE_MASK))
134 #define pmd_page(pmd) virt_to_page(__pmd_page(pmd)) argument
137 static inline int pmd_none2 (pmd_t *pmd) { return !pmd_val (*pmd); } in pmd_none2() argument
138 #define pmd_none(pmd) pmd_none2(&(pmd)) argument
140 static inline int pmd_bad2 (pmd_t *pmd) { return 0; } in pmd_bad2() argument
141 #define pmd_bad(pmd) pmd_bad2(&(pmd)) argument
142 static inline int pmd_present2 (pmd_t *pmd) { return pmd_val (*pmd) & SUN3_PMD_VALID; } in pmd_present2() argument
144 #define pmd_present(pmd) (!pmd_none2(&(pmd))) argument
204 #define pte_offset_kernel(pmd, address) ((pte_t *) __pmd_page(*pmd) + pte_index(address)) argument
[all …]
Dmcf_pgalloc.h36 #define pmd_populate(mm, pmd, page) (pmd_val(*pmd) = \ argument
39 #define pmd_populate_kernel(mm, pmd, pte) (pmd_val(*pmd) = (unsigned long)(pte)) argument
41 #define pmd_pgtable(pmd) pmd_page(pmd) argument
49 #define __pmd_free_tlb(tlb, pmd, address) do { } while (0) argument
85 #define pmd_free(mm, pmd) BUG() argument
104 #define pgd_populate(mm, pmd, pte) BUG() argument
Dsun3_pgalloc.h66 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) in pmd_populate_kernel() argument
68 pmd_val(*pmd) = __pa((unsigned long)pte); in pmd_populate_kernel()
71 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t page) in pmd_populate() argument
73 pmd_val(*pmd) = __pa((unsigned long)page_address(page)); in pmd_populate()
75 #define pmd_pgtable(pmd) pmd_page(pmd) argument
99 #define pgd_populate(mm, pmd, pte) BUG() argument
Dmcf_pgtable.h172 #define __pmd_page(pmd) ((unsigned long) (pmd_val(pmd))) argument
193 static inline int pmd_none2(pmd_t *pmd) { return !pmd_val(*pmd); } in pmd_none2() argument
194 #define pmd_none(pmd) pmd_none2(&(pmd)) argument
195 static inline int pmd_bad2(pmd_t *pmd) { return 0; } in pmd_bad2() argument
196 #define pmd_bad(pmd) pmd_bad2(&(pmd)) argument
197 #define pmd_present(pmd) (!pmd_none2(&(pmd))) argument
398 #define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)) argument
Dmotorola_pgtable.h111 unsigned long *ptr = pmdp->pmd; in pmd_set()
125 #define __pmd_page(pmd) ((unsigned long)__va(pmd_val(pmd) & _TABLE_MASK)) argument
137 #define pmd_none(pmd) (!pmd_val(pmd)) argument
138 #define pmd_bad(pmd) ((pmd_val(pmd) & _DESCTYPE_MASK) != _PAGE_TABLE) argument
139 #define pmd_present(pmd) (pmd_val(pmd) & _PAGE_TABLE) argument
141 unsigned long *__ptr = pmdp->pmd; \
146 #define pmd_page(pmd) virt_to_page(__va(pmd_val(pmd))) argument
Dmmu_context.h102 pmd_t *pmd; in load_ksp_mmu() local
129 pmd = pmd_offset(pgd, mmuar); in load_ksp_mmu()
130 if (pmd_none(*pmd)) in load_ksp_mmu()
133 pte = (mmuar >= PAGE_OFFSET) ? pte_offset_kernel(pmd, mmuar) in load_ksp_mmu()
134 : pte_offset_map(pmd, mmuar); in load_ksp_mmu()
Dpage.h24 typedef struct { unsigned long pmd[16]; } pmd_t; member
30 #define pmd_val(x) ((&x)->pmd[0])
/linux-4.4.14/arch/alpha/include/asm/
Dpgalloc.h14 pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte) in pmd_populate() argument
16 pmd_set(pmd, (pte_t *)(page_to_pa(pte) + PAGE_OFFSET)); in pmd_populate()
18 #define pmd_pgtable(pmd) pmd_page(pmd) argument
21 pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) in pmd_populate_kernel() argument
23 pmd_set(pmd, pte); in pmd_populate_kernel()
27 pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd) in pgd_populate() argument
29 pgd_set(pgd, pmd); in pgd_populate()
48 pmd_free(struct mm_struct *mm, pmd_t *pmd) in pmd_free() argument
50 free_page((unsigned long)pmd); in pmd_free()
Dpgtable.h233 pmd_page_vaddr(pmd_t pmd) in pmd_page_vaddr() argument
235 return ((pmd_val(pmd) & _PFN_MASK) >> (32-PAGE_SHIFT)) + PAGE_OFFSET; in pmd_page_vaddr()
239 #define pmd_page(pmd) (mem_map + ((pmd_val(pmd) & _PFN_MASK) >> 32)) argument
253 extern inline int pmd_none(pmd_t pmd) { return !pmd_val(pmd); } in pmd_none() argument
254 extern inline int pmd_bad(pmd_t pmd) { return (pmd_val(pmd) & ~_PFN_MASK) != _PAGE_TABLE; } in pmd_bad() argument
255 extern inline int pmd_present(pmd_t pmd) { return pmd_val(pmd) & _PAGE_VALID; } in pmd_present() argument
Dtlb.h13 #define __pmd_free_tlb(tlb, pmd, address) pmd_free((tlb)->mm, pmd) argument
/linux-4.4.14/arch/x86/power/
Dhibernate_32.c59 static pte_t *resume_one_page_table_init(pmd_t *pmd) in resume_one_page_table_init() argument
61 if (pmd_none(*pmd)) { in resume_one_page_table_init()
66 set_pmd(pmd, __pmd(__pa(page_table) | _PAGE_TABLE)); in resume_one_page_table_init()
68 BUG_ON(page_table != pte_offset_kernel(pmd, 0)); in resume_one_page_table_init()
73 return pte_offset_kernel(pmd, 0); in resume_one_page_table_init()
85 pmd_t *pmd; in resume_physical_mapping_init() local
94 pmd = resume_one_md_table_init(pgd); in resume_physical_mapping_init()
95 if (!pmd) in resume_physical_mapping_init()
101 for (pmd_idx = 0; pmd_idx < PTRS_PER_PMD; pmd++, pmd_idx++) { in resume_physical_mapping_init()
110 set_pmd(pmd, pfn_pmd(pfn, PAGE_KERNEL_LARGE_EXEC)); in resume_physical_mapping_init()
[all …]
/linux-4.4.14/arch/unicore32/kernel/
Dhibernate.c51 static pte_t *resume_one_page_table_init(pmd_t *pmd) in resume_one_page_table_init() argument
53 if (pmd_none(*pmd)) { in resume_one_page_table_init()
58 set_pmd(pmd, __pmd(__pa(page_table) | _PAGE_KERNEL_TABLE)); in resume_one_page_table_init()
60 BUG_ON(page_table != pte_offset_kernel(pmd, 0)); in resume_one_page_table_init()
65 return pte_offset_kernel(pmd, 0); in resume_one_page_table_init()
77 pmd_t *pmd; in resume_physical_mapping_init() local
86 pmd = resume_one_md_table_init(pgd); in resume_physical_mapping_init()
87 if (!pmd) in resume_physical_mapping_init()
93 for (pmd_idx = 0; pmd_idx < PTRS_PER_PMD; pmd++, pmd_idx++) { in resume_physical_mapping_init()
102 pte = resume_one_page_table_init(pmd); in resume_physical_mapping_init()
/linux-4.4.14/arch/um/kernel/
Dmem.c66 static void __init one_page_table_init(pmd_t *pmd) in one_page_table_init() argument
68 if (pmd_none(*pmd)) { in one_page_table_init()
70 set_pmd(pmd, __pmd(_KERNPG_TABLE + in one_page_table_init()
72 if (pte != pte_offset_kernel(pmd, 0)) in one_page_table_init()
92 pmd_t *pmd; in fixrange_init() local
105 pmd = pmd_offset(pud, vaddr); in fixrange_init()
106 for (; (j < PTRS_PER_PMD) && (vaddr < end); pmd++, j++) { in fixrange_init()
107 one_page_table_init(pmd); in fixrange_init()
120 pmd_t *pmd; in fixaddr_user_init() local
136 pmd = pmd_offset(pud, vaddr); in fixaddr_user_init()
[all …]
Dtlb.c193 static inline int update_pte_range(pmd_t *pmd, unsigned long addr, in update_pte_range() argument
200 pte = pte_offset_kernel(pmd, addr); in update_pte_range()
233 pmd_t *pmd; in update_pmd_range() local
237 pmd = pmd_offset(pud, addr); in update_pmd_range()
240 if (!pmd_present(*pmd)) { in update_pmd_range()
241 if (hvc->force || pmd_newpage(*pmd)) { in update_pmd_range()
243 pmd_mkuptodate(*pmd); in update_pmd_range()
246 else ret = update_pte_range(pmd, addr, next, hvc); in update_pmd_range()
247 } while (pmd++, addr = next, ((addr < end) && !ret)); in update_pmd_range()
313 pmd_t *pmd; in flush_tlb_kernel_range_common() local
[all …]
/linux-4.4.14/include/asm-generic/
Dpgtable.h69 pmd_t pmd = *pmdp; in pmdp_test_and_clear_young() local
71 if (!pmd_young(pmd)) in pmdp_test_and_clear_young()
74 set_pmd_at(vma->vm_mm, address, pmdp, pmd_mkold(pmd)); in pmdp_test_and_clear_young()
128 pmd_t pmd = *pmdp; in pmdp_huge_get_and_clear() local
130 return pmd; in pmdp_huge_get_and_clear()
382 static inline int pmd_none_or_clear_bad(pmd_t *pmd) in pmd_none_or_clear_bad() argument
384 if (pmd_none(*pmd)) in pmd_none_or_clear_bad()
386 if (unlikely(pmd_bad(*pmd))) { in pmd_none_or_clear_bad()
387 pmd_clear_bad(pmd); in pmd_none_or_clear_bad()
493 static inline int pmd_soft_dirty(pmd_t pmd) in pmd_soft_dirty() argument
[all …]
Dpgtable-nopmd.h33 #define pmd_ERROR(pmd) (pud_ERROR((pmd).pud)) argument
35 #define pud_populate(mm, pmd, pte) do { } while (0) argument
59 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) in pmd_free() argument
D4level-fixup.h26 #define pud_populate(mm, pud, pmd) pgd_populate(mm, pud, pmd) argument
/linux-4.4.14/arch/sparc/include/asm/
Dpgtable_64.h337 static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot) in pmd_modify() argument
339 pte_t pte = __pte(pmd_val(pmd)); in pmd_modify()
407 static inline pmd_t pmd_mkhuge(pmd_t pmd) in pmd_mkhuge() argument
409 pte_t pte = __pte(pmd_val(pmd)); in pmd_mkhuge()
657 static inline unsigned long pmd_large(pmd_t pmd) in pmd_large() argument
659 pte_t pte = __pte(pmd_val(pmd)); in pmd_large()
664 static inline unsigned long pmd_pfn(pmd_t pmd) in pmd_pfn() argument
666 pte_t pte = __pte(pmd_val(pmd)); in pmd_pfn()
672 static inline unsigned long pmd_dirty(pmd_t pmd) in pmd_dirty() argument
674 pte_t pte = __pte(pmd_val(pmd)); in pmd_dirty()
[all …]
Dpgalloc_32.h46 static inline void free_pmd_fast(pmd_t * pmd) in free_pmd_fast() argument
48 srmmu_free_nocache(pmd, SRMMU_PMD_TABLE_SIZE); in free_pmd_fast()
51 #define pmd_free(mm, pmd) free_pmd_fast(pmd) argument
52 #define __pmd_free_tlb(tlb, pmd, addr) pmd_free((tlb)->mm, pmd) argument
55 #define pmd_pgtable(pmd) pmd_page(pmd) argument
Dpgalloc_64.h35 static inline void __pud_populate(pud_t *pud, pmd_t *pmd) in __pud_populate() argument
37 pud_set(pud, pmd); in __pud_populate()
59 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) in pmd_free() argument
61 kmem_cache_free(pgtable_cache, pmd); in pmd_free()
114 #define __pmd_free_tlb(tlb, pmd, addr) \ argument
115 pgtable_free_tlb(tlb, pmd, false)
Dpgtable_32.h127 static inline struct page *pmd_page(pmd_t pmd) in pmd_page() argument
129 if (srmmu_device_memory(pmd_val(pmd))) in pmd_page()
131 return pfn_to_page((pmd_val(pmd) & SRMMU_PTD_PMASK) >> (PAGE_SHIFT-4)); in pmd_page()
164 static inline int pmd_bad(pmd_t pmd) in pmd_bad() argument
166 return (pmd_val(pmd) & SRMMU_ET_MASK) != SRMMU_ET_PTD; in pmd_bad()
169 static inline int pmd_present(pmd_t pmd) in pmd_present() argument
171 return ((pmd_val(pmd) & SRMMU_ET_MASK) == SRMMU_ET_PTD); in pmd_present()
174 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
176 return !pmd_val(pmd); in pmd_none()
/linux-4.4.14/arch/um/include/asm/
Dpgalloc.h13 #define pmd_populate_kernel(mm, pmd, pte) \ argument
14 set_pmd(pmd, __pmd(_PAGE_TABLE + (unsigned long) __pa(pte)))
16 #define pmd_populate(mm, pmd, pte) \ argument
17 set_pmd(pmd, __pmd(_PAGE_TABLE + \
20 #define pmd_pgtable(pmd) pmd_page(pmd) argument
50 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) in pmd_free() argument
52 free_page((unsigned long)pmd); in pmd_free()
Dpage.h37 typedef struct { unsigned long pmd; } pmd_t; member
52 #define pmd_val(x) ((x).pmd)
64 typedef struct { unsigned long pmd; } pmd_t; member
65 #define pmd_val(x) ((x).pmd)
Dpgtable.h111 #define pmd_page(pmd) phys_to_page(pmd_val(pmd) & PAGE_MASK) argument
317 #define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK)) argument
320 #define pmd_page_vaddr(pmd) \ argument
321 ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK))
/linux-4.4.14/arch/unicore32/mm/
Dpgd.c81 pmd_t *pmd; in free_pgd_slow() local
88 pmd = pmd_off(pgd, 0); in free_pgd_slow()
89 if (pmd_none(*pmd)) in free_pgd_slow()
91 if (pmd_bad(*pmd)) { in free_pgd_slow()
92 pmd_ERROR(*pmd); in free_pgd_slow()
93 pmd_clear(pmd); in free_pgd_slow()
97 pte = pmd_pgtable(*pmd); in free_pgd_slow()
98 pmd_clear(pmd); in free_pgd_slow()
101 pmd_free(mm, pmd); in free_pgd_slow()
Dmmu.c152 static pte_t * __init early_pte_alloc(pmd_t *pmd, unsigned long addr, in early_pte_alloc() argument
155 if (pmd_none(*pmd)) { in early_pte_alloc()
157 __pmd_populate(pmd, __pa(pte) | prot); in early_pte_alloc()
159 BUG_ON(pmd_bad(*pmd)); in early_pte_alloc()
160 return pte_offset_kernel(pmd, addr); in early_pte_alloc()
163 static void __init alloc_init_pte(pmd_t *pmd, unsigned long addr, in alloc_init_pte() argument
167 pte_t *pte = early_pte_alloc(pmd, addr, type->prot_l1); in alloc_init_pte()
178 pmd_t *pmd = pmd_offset((pud_t *)pgd, addr); in alloc_init_section() local
185 pmd_t *p = pmd; in alloc_init_section()
188 set_pmd(pmd, __pmd(phys | type->prot_sect)); in alloc_init_section()
[all …]
Dioremap.c74 pmd_t pmd, *pmdp = pmd_offset((pud_t *)pgd, addr); in unmap_area_sections() local
76 pmd = *pmdp; in unmap_area_sections()
77 if (!pmd_none(pmd)) { in unmap_area_sections()
90 if ((pmd_val(pmd) & PMD_TYPE_MASK) == PMD_TYPE_TABLE) in unmap_area_sections()
91 pte_free_kernel(&init_mm, pmd_page_vaddr(pmd)); in unmap_area_sections()
116 pmd_t *pmd = pmd_offset((pud_t *)pgd, addr); in remap_area_sections() local
118 set_pmd(pmd, __pmd(__pfn_to_phys(pfn) | type->prot_sect)); in remap_area_sections()
120 flush_pmd_entry(pmd); in remap_area_sections()
Dfault.c53 pmd_t *pmd; in show_pte() local
64 pmd = pmd_offset((pud_t *) pgd, addr); in show_pte()
66 printk(", *pmd=%08lx", pmd_val(*pmd)); in show_pte()
68 if (pmd_none(*pmd)) in show_pte()
71 if (pmd_bad(*pmd)) { in show_pte()
77 if (PageHighMem(pfn_to_page(pmd_val(*pmd) >> PAGE_SHIFT))) in show_pte()
80 pte = pte_offset_map(pmd, addr); in show_pte()
347 pmd_t *pmd, *pmd_k; in do_ifault() local
364 pmd = pmd_offset((pud_t *) pgd, addr); in do_ifault()
369 set_pmd(pmd, *pmd_k); in do_ifault()
[all …]
/linux-4.4.14/arch/sh/include/asm/
Dpgalloc.h13 extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd);
15 extern void pmd_free(struct mm_struct *mm, pmd_t *pmd);
18 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, in pmd_populate_kernel() argument
21 set_pmd(pmd, __pmd((unsigned long)pte)); in pmd_populate_kernel()
24 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, in pmd_populate() argument
27 set_pmd(pmd, __pmd((unsigned long)page_address(pte))); in pmd_populate()
29 #define pmd_pgtable(pmd) pmd_page(pmd) argument
Dpgtable-3level.h30 typedef struct { unsigned long long pmd; } pmd_t; member
31 #define pmd_val(x) ((x).pmd)
/linux-4.4.14/arch/powerpc/mm/
Dtlb_hash32.c93 pmd_t *pmd; in flush_range() local
106 pmd = pmd_offset(pud_offset(pgd_offset(mm, start), start), start); in flush_range()
111 if (!pmd_none(*pmd)) { in flush_range()
113 flush_hash_pages(ctx, start, pmd_val(*pmd), count); in flush_range()
118 ++pmd; in flush_range()
157 pmd_t *pmd; in flush_tlb_page() local
164 pmd = pmd_offset(pud_offset(pgd_offset(mm, vmaddr), vmaddr), vmaddr); in flush_tlb_page()
165 if (!pmd_none(*pmd)) in flush_tlb_page()
166 flush_hash_pages(mm->context.id, vmaddr, pmd_val(*pmd), 1); in flush_tlb_page()
Dpgtable_64.c359 struct page *pmd_page(pmd_t pmd) in pmd_page() argument
361 if (pmd_trans_huge(pmd) || pmd_huge(pmd)) in pmd_page()
362 return pfn_to_page(pmd_pfn(pmd)); in pmd_page()
363 return virt_to_page(pmd_page_vaddr(pmd)); in pmd_page()
550 pmd_t pmd; in pmdp_collapse_flush() local
555 pmd = *pmdp; in pmdp_collapse_flush()
582 flush_tlb_pmd_range(vma->vm_mm, &pmd, address); in pmdp_collapse_flush()
583 return pmd; in pmdp_collapse_flush()
703 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument
709 WARN_ON(!pmd_trans_huge(pmd)); in set_pmd_at()
[all …]
Dhugetlbpage.c69 int pmd_huge(pmd_t pmd) in pmd_huge() argument
74 return ((pmd_val(pmd) & 0x3) != 0x0); in pmd_huge()
112 int pmd_huge(pmd_t pmd) in pmd_huge() argument
555 pmd_t *pmd; in hugetlb_free_pmd_range() local
561 pmd = pmd_offset(pud, addr); in hugetlb_free_pmd_range()
563 if (!is_hugepd(__hugepd(pmd_val(*pmd)))) { in hugetlb_free_pmd_range()
568 WARN_ON(!pmd_none_or_clear_bad(pmd)); in hugetlb_free_pmd_range()
578 next = addr + (1 << hugepd_shift(*(hugepd_t *)pmd)); in hugetlb_free_pmd_range()
580 free_hugepd_range(tlb, (hugepd_t *)pmd, PMD_SHIFT, in hugetlb_free_pmd_range()
595 pmd = pmd_offset(pud, start); in hugetlb_free_pmd_range()
[all …]
Dpgtable.c220 pmd_t *pmd; in assert_pte_locked() local
228 pmd = pmd_offset(pud, addr); in assert_pte_locked()
235 if (pmd_none(*pmd)) in assert_pte_locked()
237 BUG_ON(!pmd_present(*pmd)); in assert_pte_locked()
238 assert_spin_locked(pte_lockptr(mm, pmd)); in assert_pte_locked()
Dsubpage-prot.c65 pmd_t *pmd; in hpte_flush_range() local
75 pmd = pmd_offset(pud, addr); in hpte_flush_range()
76 if (pmd_none(*pmd)) in hpte_flush_range()
78 pte = pte_offset_map_lock(mm, pmd, addr, &ptl); in hpte_flush_range()
134 static int subpage_walk_pmd_entry(pmd_t *pmd, unsigned long addr, in subpage_walk_pmd_entry() argument
138 split_huge_page_pmd(vma, addr, pmd); in subpage_walk_pmd_entry()
Dppc_mmu_32.c168 pmd_t *pmd; in hash_preload() local
172 pmd = pmd_offset(pud_offset(pgd_offset(mm, ea), ea), ea); in hash_preload()
173 if (!pmd_none(*pmd)) in hash_preload()
174 add_hash_page(mm->context.id, ea, pmd_val(*pmd)); in hash_preload()
/linux-4.4.14/arch/nios2/include/asm/
Dpgtable.h186 static inline int pmd_present(pmd_t pmd) in pmd_present() argument
188 return (pmd_val(pmd) != (unsigned long) invalid_pte_table) in pmd_present()
189 && (pmd_val(pmd) != 0UL); in pmd_present()
218 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
220 return (pmd_val(pmd) == in pmd_none()
221 (unsigned long) invalid_pte_table) || (pmd_val(pmd) == 0UL); in pmd_none()
224 #define pmd_bad(pmd) (pmd_val(pmd) & ~PAGE_MASK) argument
249 #define pmd_phys(pmd) virt_to_phys((void *)pmd_val(pmd)) argument
250 #define pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT)) argument
251 #define pmd_page_vaddr(pmd) pmd_val(pmd) argument
Dpgalloc.h15 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, in pmd_populate_kernel() argument
18 set_pmd(pmd, __pmd((unsigned long)pte)); in pmd_populate_kernel()
21 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, in pmd_populate() argument
24 set_pmd(pmd, __pmd((unsigned long)page_address(pte))); in pmd_populate()
26 #define pmd_pgtable(pmd) pmd_page(pmd) argument
/linux-4.4.14/arch/mn10300/include/asm/
Dpgalloc.h22 #define pmd_populate_kernel(mm, pmd, pte) \ argument
23 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE))
26 void pmd_populate(struct mm_struct *mm, pmd_t *pmd, struct page *pte) in pmd_populate() argument
28 set_pmd(pmd, __pmd((page_to_pfn(pte) << PAGE_SHIFT) | _PAGE_TABLE)); in pmd_populate()
30 #define pmd_pgtable(pmd) pmd_page(pmd) argument
/linux-4.4.14/arch/sparc/mm/
Dgup.c20 static noinline int gup_pte_range(pmd_t pmd, unsigned long addr, in gup_pte_range() argument
37 ptep = pte_offset_kernel(&pmd, addr); in gup_pte_range()
69 static int gup_huge_pmd(pmd_t *pmdp, pmd_t pmd, unsigned long addr, in gup_huge_pmd() argument
76 if (!(pmd_val(pmd) & _PAGE_VALID)) in gup_huge_pmd()
79 if (write && !pmd_write(pmd)) in gup_huge_pmd()
83 head = pmd_page(pmd); in gup_huge_pmd()
99 if (unlikely(pmd_val(pmd) != pmd_val(*pmdp))) { in gup_huge_pmd()
126 pmd_t pmd = *pmdp; in gup_pmd_range() local
129 if (pmd_none(pmd) || pmd_trans_splitting(pmd)) in gup_pmd_range()
131 if (unlikely(pmd_large(pmd))) { in gup_pmd_range()
[all …]
Dhugetlbpage.c134 pmd_t *pmd; in huge_pte_alloc() local
147 pmd = pmd_alloc(mm, pud, addr); in huge_pte_alloc()
148 if (pmd) in huge_pte_alloc()
149 pte = pte_alloc_map(mm, NULL, pmd, addr); in huge_pte_alloc()
158 pmd_t *pmd; in huge_pte_offset() local
167 pmd = pmd_offset(pud, addr); in huge_pte_offset()
168 if (!pmd_none(*pmd)) in huge_pte_offset()
169 pte = pte_offset_map(pmd, addr); in huge_pte_offset()
236 int pmd_huge(pmd_t pmd) in pmd_huge() argument
Dleon_mm.c39 unsigned int pgd, pmd, ped; in leon_swprobe() local
92 pmd = LEON_BYPASS_LOAD_PA(ptr); in leon_swprobe()
93 if (((pmd & SRMMU_ET_MASK) == SRMMU_ET_PTE)) { in leon_swprobe()
97 pte = pmd; in leon_swprobe()
98 paddrbase = pmd & _SRMMU_PTE_PMASK_LEON; in leon_swprobe()
101 if (((pmd & SRMMU_ET_MASK) != SRMMU_ET_PTD)) { in leon_swprobe()
108 printk(KERN_INFO "swprobe: --- pmd (%x) ---\n", pmd); in leon_swprobe()
110 ptr = (pmd & SRMMU_PTD_PMASK) << 4; in leon_swprobe()
Dtlb.c147 pmd_t pmd) in tlb_batch_pmd_scan() argument
152 pte = pte_offset_map(&pmd, vaddr); in tlb_batch_pmd_scan()
167 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument
171 *pmdp = pmd; in set_pmd_at()
176 if ((pmd_val(pmd) ^ pmd_val(orig)) & _PAGE_PMD_HUGE) { in set_pmd_at()
177 if (pmd_val(pmd) & _PAGE_PMD_HUGE) in set_pmd_at()
/linux-4.4.14/arch/m32r/include/asm/
Dpgalloc.h8 #define pmd_populate_kernel(mm, pmd, pte) \ argument
9 set_pmd(pmd, __pmd(_PAGE_TABLE + __pa(pte)))
11 static __inline__ void pmd_populate(struct mm_struct *mm, pmd_t *pmd, in pmd_populate() argument
14 set_pmd(pmd, __pmd(_PAGE_TABLE + page_to_phys(pte))); in pmd_populate()
16 #define pmd_pgtable(pmd) pmd_page(pmd) argument
77 #define pgd_populate(mm, pmd, pte) BUG() argument
Dmmzone.h18 #define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)) argument
/linux-4.4.14/arch/ia64/include/asm/
Dpgalloc.h55 pud_populate(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd) in pud_populate() argument
57 pud_val(*pud_entry) = __pa(pmd); in pud_populate()
65 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) in pmd_free() argument
67 quicklist_free(0, NULL, pmd); in pmd_free()
70 #define __pmd_free_tlb(tlb, pmd, address) pmd_free((tlb)->mm, pmd) argument
77 #define pmd_pgtable(pmd) pmd_page(pmd) argument
Dpgtable.h270 #define pmd_none(pmd) (!pmd_val(pmd)) argument
271 #define pmd_bad(pmd) (!ia64_phys_addr_valid(pmd_val(pmd))) argument
272 #define pmd_present(pmd) (pmd_val(pmd) != 0UL) argument
274 #define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_val(pmd) & _PFN_MASK)) argument
275 #define pmd_page(pmd) virt_to_page((pmd_val(pmd) + PAGE_OFFSET)) argument
/linux-4.4.14/arch/x86/kernel/
Dmachine_kexec_32.c103 pgd_t *pgd, pmd_t *pmd, pte_t *pte, in machine_kexec_page_table_set_one() argument
111 set_pgd(pgd, __pgd(__pa(pmd) | _PAGE_PRESENT)); in machine_kexec_page_table_set_one()
114 pmd = pmd_offset(pud, vaddr); in machine_kexec_page_table_set_one()
115 if (!(pmd_val(*pmd) & _PAGE_PRESENT)) in machine_kexec_page_table_set_one()
116 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE)); in machine_kexec_page_table_set_one()
117 pte = pte_offset_kernel(pmd, vaddr); in machine_kexec_page_table_set_one()
124 pmd_t *pmd = NULL; in machine_kexec_prepare_page_tables() local
128 pmd = image->arch.pmd0; in machine_kexec_prepare_page_tables()
131 image->arch.pgd, pmd, image->arch.pte0, in machine_kexec_prepare_page_tables()
134 pmd = image->arch.pmd1; in machine_kexec_prepare_page_tables()
[all …]
Despfix_64.c142 pmd_t pmd, *pmd_p; in init_espfix_ap() local
183 pmd = *pmd_p; in init_espfix_ap()
184 if (!pmd_present(pmd)) { in init_espfix_ap()
188 pmd = __pmd(__pa(pte_p) | (PGTABLE_PROT & ptemask)); in init_espfix_ap()
191 set_pmd(&pmd_p[n], pmd); in init_espfix_ap()
194 pte_p = pte_offset_kernel(&pmd, addr); in init_espfix_ap()
Dmachine_kexec_64.c40 free_page((unsigned long)image->arch.pmd); in free_transition_pgtable()
47 pmd_t *pmd; in init_transition_pgtable() local
64 pmd = (pmd_t *)get_zeroed_page(GFP_KERNEL); in init_transition_pgtable()
65 if (!pmd) in init_transition_pgtable()
67 image->arch.pmd = pmd; in init_transition_pgtable()
68 set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE)); in init_transition_pgtable()
70 pmd = pmd_offset(pud, vaddr); in init_transition_pgtable()
71 if (!pmd_present(*pmd)) { in init_transition_pgtable()
76 set_pmd(pmd, __pmd(__pa(pte) | _KERNPG_TABLE)); in init_transition_pgtable()
78 pte = pte_offset_kernel(pmd, vaddr); in init_transition_pgtable()
Dhead64.c60 pmdval_t pmd, *pmd_p; in early_make_pgtable() local
104 pmd = (physaddr & PMD_MASK) + early_pmd_flags; in early_make_pgtable()
105 pmd_p[pmd_index(address)] = pmd; in early_make_pgtable()
/linux-4.4.14/arch/mips/mm/
Dpgtable-64.c72 pmd_t pmd = pmd_mksplitting(*pmdp); in pmdp_splitting_flush() local
73 set_pmd_at(vma->vm_mm, address, pmdp, pmd); in pmdp_splitting_flush()
81 pmd_t pmd; in mk_pmd() local
83 pmd_val(pmd) = (page_to_pfn(page) << _PFN_SHIFT) | pgprot_val(prot); in mk_pmd()
85 return pmd; in mk_pmd()
89 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument
91 *pmdp = pmd; in set_pmd_at()
Dhugetlbpage.c43 pmd_t *pmd = NULL; in huge_pte_offset() local
49 pmd = pmd_offset(pud, addr); in huge_pte_offset()
51 return (pte_t *) pmd; in huge_pte_offset()
66 int pmd_huge(pmd_t pmd) in pmd_huge() argument
68 return (pmd_val(pmd) & _PAGE_HUGE) != 0; in pmd_huge()
Dgup.c37 static int gup_pte_range(pmd_t pmd, unsigned long addr, unsigned long end, in gup_pte_range() argument
40 pte_t *ptep = pte_offset_map(&pmd, addr); in gup_pte_range()
71 static int gup_huge_pmd(pmd_t pmd, unsigned long addr, unsigned long end, in gup_huge_pmd() argument
74 pte_t pte = *(pte_t *)&pmd; in gup_huge_pmd()
109 pmd_t pmd = *pmdp; in gup_pmd_range() local
123 if (pmd_none(pmd) || pmd_trans_splitting(pmd)) in gup_pmd_range()
125 if (unlikely(pmd_huge(pmd))) { in gup_pmd_range()
126 if (!gup_huge_pmd(pmd, addr, next, write, pages,nr)) in gup_pmd_range()
129 if (!gup_pte_range(pmd, addr, next, write, pages,nr)) in gup_pmd_range()
Dioremap.c45 static inline int remap_area_pmd(pmd_t * pmd, unsigned long address, in remap_area_pmd() argument
57 pte_t * pte = pte_alloc_kernel(pmd, address); in remap_area_pmd()
62 pmd++; in remap_area_pmd()
80 pmd_t *pmd; in remap_area_pages() local
86 pmd = pmd_alloc(&init_mm, pud, address); in remap_area_pages()
87 if (!pmd) in remap_area_pages()
89 if (remap_area_pmd(pmd, address, end - address, in remap_area_pages()
Dpgtable-32.c40 pmd_t *pmd; in pagetable_init() local
66 pmd = pmd_offset(pud, vaddr); in pagetable_init()
67 pte = pte_offset_kernel(pmd, vaddr); in pagetable_init()
/linux-4.4.14/arch/xtensa/include/asm/
Dpgtable.h238 #define pmd_page_vaddr(pmd) ((unsigned long)(pmd_val(pmd) & PAGE_MASK)) argument
239 #define pmd_page(pmd) virt_to_page(pmd_val(pmd)) argument
255 #define pmd_none(pmd) (!pmd_val(pmd)) argument
256 #define pmd_present(pmd) (pmd_val(pmd) & PAGE_MASK) argument
257 #define pmd_bad(pmd) (pmd_val(pmd) & ~PAGE_MASK) argument
415 #define _PTE_OFFSET(pmd,adr,tmp) _PTE_INDEX(tmp, adr); \ argument
416 srli pmd, pmd, PAGE_SHIFT; \
417 slli pmd, pmd, PAGE_SHIFT; \
418 addx4 pmd, tmp, pmd
Dpgalloc.h28 #define pmd_pgtable(pmd) pmd_page(pmd) argument
82 #define pmd_pgtable(pmd) pmd_page(pmd) argument
/linux-4.4.14/arch/unicore32/include/asm/
Dtlbflush.h135 static inline void flush_pmd_entry(pmd_t *pmd) in flush_pmd_entry() argument
146 : : "r" (pmd) : "r1", "r2"); in flush_pmd_entry()
150 : : "r" (pmd) : "cc"); in flush_pmd_entry()
154 static inline void clean_pmd_entry(pmd_t *pmd) in clean_pmd_entry() argument
159 : : "r" (__pa(pmd) & ~(L1_CACHE_BYTES - 1)) : "cc"); in clean_pmd_entry()
163 : : "r" (pmd) : "cc"); in clean_pmd_entry()
Dpgtable.h206 #define pmd_none(pmd) (!pmd_val(pmd)) argument
207 #define pmd_present(pmd) (pmd_val(pmd) & PMD_PRESENT) argument
208 #define pmd_bad(pmd) (((pmd_val(pmd) & \ argument
223 #define pmd_page_vaddr(pmd) ((pte_t *)__va(pmd_val(pmd) & PAGE_MASK)) argument
224 #define pmd_page(pmd) pfn_to_page(__phys_to_pfn(pmd_val(pmd))) argument
/linux-4.4.14/arch/cris/include/asm/
Dpgalloc.h7 #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, pte) argument
8 #define pmd_populate(mm, pmd, pte) pmd_set(pmd, page_address(pte)) argument
9 #define pmd_pgtable(pmd) pmd_page(pmd) argument
/linux-4.4.14/arch/parisc/mm/
Dhugetlbpage.c51 pmd_t *pmd; in huge_pte_alloc() local
64 pmd = pmd_alloc(mm, pud, addr); in huge_pte_alloc()
65 if (pmd) in huge_pte_alloc()
66 pte = pte_alloc_map(mm, NULL, pmd, addr); in huge_pte_alloc()
75 pmd_t *pmd; in huge_pte_offset() local
84 pmd = pmd_offset(pud, addr); in huge_pte_offset()
85 if (!pmd_none(*pmd)) in huge_pte_offset()
86 pte = pte_offset_map(pmd, addr); in huge_pte_offset()
189 int pmd_huge(pmd_t pmd) in pmd_huge() argument
Dinit.c401 pmd_t *pmd; in map_pages() local
433 pmd = (pmd_t *)__pa(pg_dir); in map_pages()
435 pmd = (pmd_t *)pgd_address(*pg_dir); in map_pages()
441 if (!pmd) { in map_pages()
442 pmd = (pmd_t *) alloc_bootmem_low_pages_node(NODE_DATA(0), PAGE_SIZE << PMD_ORDER); in map_pages()
443 pmd = (pmd_t *) __pa(pmd); in map_pages()
446 pgd_populate(NULL, pg_dir, __va(pmd)); in map_pages()
452 pmd = (pmd_t *)__va(pmd) + start_pmd; in map_pages()
453 for (tmp1 = start_pmd; tmp1 < PTRS_PER_PMD; tmp1++, pmd++) { in map_pages()
459 pg_table = (pte_t *)pmd_address(*pmd); in map_pages()
[all …]
/linux-4.4.14/arch/ia64/mm/
Dhugetlbpage.c33 pmd_t *pmd; in huge_pte_alloc() local
39 pmd = pmd_alloc(mm, pud, taddr); in huge_pte_alloc()
40 if (pmd) in huge_pte_alloc()
41 pte = pte_alloc_map(mm, NULL, pmd, taddr); in huge_pte_alloc()
52 pmd_t *pmd; in huge_pte_offset() local
59 pmd = pmd_offset(pud, taddr); in huge_pte_offset()
60 if (pmd_present(*pmd)) in huge_pte_offset()
61 pte = pte_offset_map(pmd, taddr); in huge_pte_offset()
102 int pmd_huge(pmd_t pmd) in pmd_huge() argument
Dinit.c215 pmd_t *pmd; in put_kernel_page() local
224 pmd = pmd_alloc(&init_mm, pud, address); in put_kernel_page()
225 if (!pmd) in put_kernel_page()
227 pte = pte_alloc_kernel(pmd, address); in put_kernel_page()
389 pmd_t *pmd; in vmemmap_find_next_valid_pfn() local
404 pmd = pmd_offset(pud, end_address); in vmemmap_find_next_valid_pfn()
405 if (pmd_none(*pmd)) { in vmemmap_find_next_valid_pfn()
410 pte = pte_offset_kernel(pmd, end_address); in vmemmap_find_next_valid_pfn()
437 pmd_t *pmd; in create_mem_map_page_table() local
455 pmd = pmd_offset(pud, address); in create_mem_map_page_table()
[all …]
Dfault.c52 pmd_t *pmd; in mapped_kernel_page_is_present() local
63 pmd = pmd_offset(pud, address); in mapped_kernel_page_is_present()
64 if (pmd_none(*pmd) || pmd_bad(*pmd)) in mapped_kernel_page_is_present()
67 ptep = pte_offset_kernel(pmd, address); in mapped_kernel_page_is_present()
/linux-4.4.14/lib/
Dioremap.c53 static int ioremap_pte_range(pmd_t *pmd, unsigned long addr, in ioremap_pte_range() argument
60 pte = pte_alloc_kernel(pmd, addr); in ioremap_pte_range()
74 pmd_t *pmd; in ioremap_pmd_range() local
78 pmd = pmd_alloc(&init_mm, pud, addr); in ioremap_pmd_range()
79 if (!pmd) in ioremap_pmd_range()
87 if (pmd_set_huge(pmd, phys_addr + addr, prot)) in ioremap_pmd_range()
91 if (ioremap_pte_range(pmd, addr, next, phys_addr + addr, prot)) in ioremap_pmd_range()
93 } while (pmd++, addr = next, addr != end); in ioremap_pmd_range()
/linux-4.4.14/arch/metag/mm/
Dinit.c47 pmd_t *pmd; in insert_gateway_page() local
55 pmd = pmd_offset(pud, address); in insert_gateway_page()
56 if (!pmd_present(*pmd)) { in insert_gateway_page()
58 set_pmd(pmd, __pmd(_PAGE_TABLE | __pa(pte))); in insert_gateway_page()
61 pte = pte_offset_kernel(pmd, address); in insert_gateway_page()
267 pmd_t *pmd; in allocate_pgtables() local
278 pmd = (pmd_t *)pgd; in allocate_pgtables()
279 for (; (j < PTRS_PER_PMD) && (vaddr != end); pmd++, j++) { in allocate_pgtables()
282 if (!pmd_none(*pmd)) in allocate_pgtables()
286 pmd_populate_kernel(&init_mm, pmd, pte); in allocate_pgtables()
[all …]
Dhugetlbpage.c64 pmd_t *pmd; in huge_pte_alloc() local
69 pmd = pmd_offset(pud, addr); in huge_pte_alloc()
70 pte = pte_alloc_map(mm, NULL, pmd, addr); in huge_pte_alloc()
81 pmd_t *pmd; in huge_pte_offset() local
86 pmd = pmd_offset(pud, addr); in huge_pte_offset()
87 pte = pte_offset_kernel(pmd, addr); in huge_pte_offset()
92 int pmd_huge(pmd_t pmd) in pmd_huge() argument
94 return pmd_page_shift(pmd) > PAGE_SHIFT; in pmd_huge()
103 pmd_t *pmd, int write) in follow_huge_pmd() argument
/linux-4.4.14/arch/metag/include/asm/
Dpgalloc.h7 #define pmd_populate_kernel(mm, pmd, pte) \ argument
8 set_pmd(pmd, __pmd(_PAGE_TABLE | __pa(pte)))
10 #define pmd_populate(mm, pmd, pte) \ argument
11 set_pmd(pmd, __pmd(_PAGE_TABLE | page_to_phys(pte)))
13 #define pmd_pgtable(pmd) pmd_page(pmd) argument
Dpgtable.h162 static inline unsigned long pmd_page_vaddr(pmd_t pmd) in pmd_page_vaddr() argument
164 unsigned long paddr = pmd_val(pmd) & PAGE_MASK; in pmd_page_vaddr()
170 #define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)) argument
171 #define pmd_page_shift(pmd) (12 + ((pmd_val(pmd) & _PAGE_SZ_MASK) \ argument
173 #define pmd_num_ptrs(pmd) (PGDIR_SIZE >> pmd_page_shift(pmd)) argument
195 # define pte_index(pmd, address) \ argument
199 # define pte_index(pmd, address) \ argument
200 (((address) >> pmd_page_shift(pmd)) & (pmd_num_ptrs(pmd) - 1))
/linux-4.4.14/arch/xtensa/mm/
Dmmu.c24 pmd_t *pmd = pmd_offset(pgd, vaddr); in init_pmd() local
38 for (i = 0; i < n_pages; i += PTRS_PER_PTE, ++pmd) { in init_pmd()
41 BUG_ON(!pmd_none(*pmd)); in init_pmd()
42 set_pmd(pmd, __pmd(((unsigned long)cur_pte) & PAGE_MASK)); in init_pmd()
43 BUG_ON(cur_pte != pte_offset_kernel(pmd, 0)); in init_pmd()
45 __func__, pmd, cur_pte); in init_pmd()
Dtlb.c174 pmd_t *pmd; in get_pte_for_vaddr() local
182 pmd = pmd_offset(pgd, vaddr); in get_pte_for_vaddr()
183 if (pmd_none_or_clear_bad(pmd)) in get_pte_for_vaddr()
185 pte = pte_offset_map(pmd, vaddr); in get_pte_for_vaddr()
Dfault.c210 pmd_t *pmd, *pmd_k; in do_page_fault() local
224 pmd = pmd_offset(pgd, address); in do_page_fault()
226 if (!pmd_present(*pmd) || !pmd_present(*pmd_k)) in do_page_fault()
229 pmd_val(*pmd) = pmd_val(*pmd_k); in do_page_fault()
/linux-4.4.14/arch/openrisc/include/asm/
Dpgalloc.h30 #define pmd_populate_kernel(mm, pmd, pte) \ argument
31 set_pmd(pmd, __pmd(_KERNPG_TABLE + __pa(pte)))
33 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, in pmd_populate() argument
36 set_pmd(pmd, __pmd(_KERNPG_TABLE + in pmd_populate()
104 #define pmd_pgtable(pmd) pmd_page(pmd) argument
/linux-4.4.14/arch/microblaze/include/asm/
Dpgalloc.h61 extern void __bad_pte(pmd_t *pmd);
102 #define pmd_pgtable(pmd) pmd_page(pmd) argument
174 #define pmd_populate(mm, pmd, pte) \ argument
175 (pmd_val(*(pmd)) = (unsigned long)page_address(pte))
177 #define pmd_populate_kernel(mm, pmd, pte) \ argument
178 (pmd_val(*(pmd)) = (unsigned long) (pte))
187 #define pgd_populate(mm, pmd, pte) BUG() argument
Dpgtable.h301 #define pmd_none(pmd) (!pmd_val(pmd)) argument
302 #define pmd_bad(pmd) ((pmd_val(pmd) & _PMD_PRESENT) == 0) argument
303 #define pmd_present(pmd) ((pmd_val(pmd) & _PMD_PRESENT) != 0) argument
470 #define pmd_page_kernel(pmd) ((unsigned long) (pmd_val(pmd) & PAGE_MASK)) argument
473 #define pmd_page(pmd) (pfn_to_page(__pa(pmd_val(pmd)) >> PAGE_SHIFT)) argument
/linux-4.4.14/include/trace/events/
Dthp.h30 TP_PROTO(unsigned long addr, unsigned long pmd),
31 TP_ARGS(addr, pmd),
34 __field(unsigned long, pmd)
39 __entry->pmd = pmd;
42 TP_printk("Set pmd with 0x%lx with 0x%lx", __entry->addr, __entry->pmd)
/linux-4.4.14/arch/tile/mm/
Dhugetlbpage.c71 pmd_t *pmd = pmd_alloc(mm, pud, addr); in huge_pte_alloc() local
75 return (pte_t *)pmd; in huge_pte_alloc()
80 return pte_alloc_map(mm, NULL, pmd, addr); in huge_pte_alloc()
108 pmd_t *pmd; in huge_pte_offset() local
129 pmd = (pmd_t *)get_pte((pte_t *)pud_page_vaddr(*pud), in huge_pte_offset()
131 if (!pmd_present(*pmd)) in huge_pte_offset()
134 pmd = pmd_offset(pud, addr); in huge_pte_offset()
138 if (pmd_huge(*pmd)) in huge_pte_offset()
139 return (pte_t *)pmd; in huge_pte_offset()
143 pte = get_pte((pte_t *)pmd_page_vaddr(*pmd), pte_index(addr), 2); in huge_pte_offset()
[all …]
Dinit.c118 static void __init assign_pte(pmd_t *pmd, pte_t *page_table) in assign_pte() argument
125 *(pte_t *)pmd = pteval; in assign_pte()
126 if (page_table != (pte_t *)pmd_page_vaddr(*pmd)) in assign_pte()
137 static inline void assign_pmd(pud_t *pud, pmd_t *pmd) in assign_pmd() argument
139 assign_pte((pmd_t *)pud, (pte_t *)pmd); in assign_pmd()
145 void __init shatter_pmd(pmd_t *pmd) in shatter_pmd() argument
147 pte_t *pte = get_prealloc_pte(pte_pfn(*(pte_t *)pmd)); in shatter_pmd()
148 assign_pte(pmd, pte); in shatter_pmd()
184 pmd_t *pmd = get_pmd(pgd, vaddr); in page_table_range_init() local
185 if (pmd_none(*pmd)) in page_table_range_init()
[all …]
Dpgtable.c102 pmd_t *pmd; in shatter_huge_page() local
115 pmd = pmd_offset(pud, addr); in shatter_huge_page()
116 BUG_ON(!pmd_present(*pmd)); in shatter_huge_page()
117 if (!pmd_huge_page(*pmd)) in shatter_huge_page()
121 if (!pmd_huge_page(*pmd)) { in shatter_huge_page()
128 pmd_populate_kernel(&init_mm, pmd, get_prealloc_pte(pmd_pfn(*pmd))); in shatter_huge_page()
138 __set_pmd(copy_pmd, *pmd); in shatter_huge_page()
344 pmd_t *pmd; in virt_to_pte() local
355 pmd = pmd_offset(pud, addr); in virt_to_pte()
356 if (!pmd_present(*pmd)) in virt_to_pte()
[all …]
Dfault.c110 pmd_t *pmd, *pmd_k; in vmalloc_sync_one() local
123 pmd = pmd_offset(pud, address); in vmalloc_sync_one()
127 if (!pmd_present(*pmd)) in vmalloc_sync_one()
128 set_pmd(pmd, *pmd_k); in vmalloc_sync_one()
130 BUG_ON(pmd_ptfn(*pmd) != pmd_ptfn(*pmd_k)); in vmalloc_sync_one()
216 pmd_t *pmd; in handle_migrating_pte() local
227 pmd = pmd_offset(pud, address); in handle_migrating_pte()
228 if (!pmd || !pmd_present(*pmd)) in handle_migrating_pte()
230 pte = pmd_huge_page(*pmd) ? ((pte_t *)pmd) : in handle_migrating_pte()
231 pte_offset_kernel(pmd, address); in handle_migrating_pte()
/linux-4.4.14/arch/score/include/asm/
Dpgalloc.h6 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, in pmd_populate_kernel() argument
9 set_pmd(pmd, __pmd((unsigned long)pte)); in pmd_populate_kernel()
12 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, in pmd_populate() argument
15 set_pmd(pmd, __pmd((unsigned long)page_address(pte))); in pmd_populate()
18 #define pmd_pgtable(pmd) pmd_page(pmd) argument
Dpgtable.h48 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
50 return pmd_val(pmd) == (unsigned long) invalid_pte_table; in pmd_none()
53 #define pmd_bad(pmd) (pmd_val(pmd) & ~PAGE_MASK) argument
55 static inline int pmd_present(pmd_t pmd) in pmd_present() argument
57 return pmd_val(pmd) != (unsigned long) invalid_pte_table; in pmd_present()
97 #define pmd_phys(pmd) __pa((void *)pmd_val(pmd)) argument
98 #define pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT)) argument
118 #define pmd_page_vaddr(pmd) pmd_val(pmd) argument
/linux-4.4.14/arch/avr32/include/asm/
Dpgalloc.h20 pmd_t *pmd, pte_t *pte) in pmd_populate_kernel() argument
22 set_pmd(pmd, __pmd((unsigned long)pte)); in pmd_populate_kernel()
25 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, in pmd_populate() argument
28 set_pmd(pmd, __pmd((unsigned long)page_address(pte))); in pmd_populate()
30 #define pmd_pgtable(pmd) pmd_page(pmd) argument
/linux-4.4.14/arch/hexagon/include/asm/
Dpgtable.h259 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
261 return pmd_val(pmd) == _NULL_PMD; in pmd_none()
270 static inline int pmd_present(pmd_t pmd) in pmd_present() argument
272 return pmd_val(pmd) != (unsigned long)_NULL_PMD; in pmd_present()
280 static inline int pmd_bad(pmd_t pmd) in pmd_bad() argument
288 #define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)) argument
289 #define pmd_pgtable(pmd) pmd_page(pmd) argument
436 #define pte_offset_map_nested(pmd, addr) pte_offset_map(pmd, addr) argument
Dpgalloc.h96 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, in pmd_populate() argument
103 set_pmd(pmd, __pmd(((unsigned long)page_to_pfn(pte) << PAGE_SHIFT) | in pmd_populate()
116 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, in pmd_populate_kernel() argument
129 set_pmd(pmd, __pmd(((unsigned long)__pa(pte)) | HEXAGON_L1_PTE_SIZE)); in pmd_populate_kernel()
135 pmdindex = (pgd_t *)pmd - mm->pgd; in pmd_populate_kernel()
/linux-4.4.14/arch/parisc/kernel/
Dpci-dma.c110 static inline int map_pmd_uncached(pmd_t * pmd, unsigned long vaddr, in map_pmd_uncached() argument
121 pte_t * pte = pte_alloc_kernel(pmd, vaddr); in map_pmd_uncached()
128 pmd++; in map_pmd_uncached()
141 pmd_t *pmd; in map_uncached_pages() local
143 pmd = pmd_alloc(NULL, dir, vaddr); in map_uncached_pages()
144 if (!pmd) in map_uncached_pages()
146 if (map_pmd_uncached(pmd, vaddr, end - vaddr, &paddr)) in map_uncached_pages()
154 static inline void unmap_uncached_pte(pmd_t * pmd, unsigned long vaddr, in unmap_uncached_pte() argument
161 if (pmd_none(*pmd)) in unmap_uncached_pte()
163 if (pmd_bad(*pmd)) { in unmap_uncached_pte()
[all …]
/linux-4.4.14/arch/mn10300/mm/
Dcache-inv-icache.c34 pmd_t *pmd; in flush_icache_page_range() local
51 pmd = pmd_offset(pud, start); in flush_icache_page_range()
52 if (!pmd || !pmd_val(*pmd)) in flush_icache_page_range()
55 ppte = pte_offset_map(pmd, start); in flush_icache_page_range()
Dfault.c71 pmd_t *pmd;
82 pmd = pmd_offset(pgd, address);
84 pmd, (long long)pmd_val(*pmd));
86 if (!pmd_present(*pmd)) {
90 pte = pte_offset(pmd, address);
388 pmd_t *pmd, *pmd_k; in do_page_fault() local
406 pmd = pmd_offset(pud, address); in do_page_fault()
407 set_pmd(pmd, *pmd_k); in do_page_fault()
Dcache-flush-icache.c56 pmd_t *pmd; in flush_icache_page_range() local
73 pmd = pmd_offset(pud, start); in flush_icache_page_range()
74 if (!pmd || !pmd_val(*pmd)) in flush_icache_page_range()
77 ppte = pte_offset_map(pmd, start); in flush_icache_page_range()
Dpgtable.c39 pmd_t *pmd; in set_pmd_pfn() local
55 pmd = pmd_offset(pud, vaddr); in set_pmd_pfn()
56 set_pmd(pmd, pfn_pmd(pfn, flags)); in set_pmd_pfn()
/linux-4.4.14/arch/nios2/mm/
Dioremap.c50 static inline int remap_area_pmd(pmd_t *pmd, unsigned long address, in remap_area_pmd() argument
64 pte_t *pte = pte_alloc_kernel(pmd, address); in remap_area_pmd()
71 pmd++; in remap_area_pmd()
90 pmd_t *pmd; in remap_area_pages() local
96 pmd = pmd_alloc(&init_mm, pud, address); in remap_area_pages()
97 if (!pmd) in remap_area_pages()
99 if (remap_area_pmd(pmd, address, end - address, in remap_area_pages()
/linux-4.4.14/arch/arm/lib/
Duaccess_with_memcpy.c30 pmd_t *pmd; in pin_page_for_write() local
43 pmd = pmd_offset(pud, addr); in pin_page_for_write()
44 if (unlikely(pmd_none(*pmd))) in pin_page_for_write()
57 if (unlikely(pmd_thp_or_huge(*pmd))) { in pin_page_for_write()
60 if (unlikely(!pmd_thp_or_huge(*pmd) in pin_page_for_write()
61 || pmd_hugewillfault(*pmd) in pin_page_for_write()
62 || pmd_trans_splitting(*pmd))) { in pin_page_for_write()
72 if (unlikely(pmd_bad(*pmd))) in pin_page_for_write()
75 pte = pte_offset_map_lock(current->mm, pmd, addr, &ptl); in pin_page_for_write()
/linux-4.4.14/arch/frv/include/asm/
Dpgalloc.h23 #define pmd_populate_kernel(mm, pmd, pte) __set_pmd(pmd, __pa(pte) | _PAGE_TABLE) argument
28 #define pmd_pgtable(pmd) pmd_page(pmd) argument
/linux-4.4.14/arch/alpha/mm/
Dinit.c148 pmd_t *pmd; in callback_init() local
187 pmd = pmd_offset(pgd, VMALLOC_START); in callback_init()
188 pmd_set(pmd, (pte_t *)(two_pages + PAGE_SIZE)); in callback_init()
216 if (pmd != pmd_offset(pgd, vaddr)) { in callback_init()
218 pmd = pmd_offset(pgd, vaddr); in callback_init()
219 pmd_set(pmd, (pte_t *)kernel_end); in callback_init()
222 set_pte(pte_offset_kernel(pmd, vaddr), in callback_init()
/linux-4.4.14/arch/frv/mm/
Dpgalloc.c52 void __set_pmd(pmd_t *pmdptr, unsigned long pmd) in __set_pmd() argument
57 if (!pmd) { in __set_pmd()
61 BUG_ON(pmd & (0x3f00 | xAMPRx_SS | 0xe)); in __set_pmd()
64 *__ste_p++ = pmd; in __set_pmd()
65 pmd += __frv_PT_SIZE; in __set_pmd()
/linux-4.4.14/fs/proc/
Dtask_mmu.c523 static void smaps_pmd_entry(pmd_t *pmd, unsigned long addr, in smaps_pmd_entry() argument
531 page = follow_trans_huge_pmd(vma, addr, pmd, FOLL_DUMP); in smaps_pmd_entry()
536 pmd_young(*pmd), pmd_dirty(*pmd)); in smaps_pmd_entry()
539 static void smaps_pmd_entry(pmd_t *pmd, unsigned long addr, in smaps_pmd_entry() argument
545 static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, in smaps_pte_range() argument
552 if (pmd_trans_huge_lock(pmd, vma, &ptl) == 1) { in smaps_pte_range()
553 smaps_pmd_entry(pmd, addr, walk); in smaps_pte_range()
558 if (pmd_trans_unstable(pmd)) in smaps_pte_range()
565 pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); in smaps_pte_range()
815 pmd_t pmd = pmdp_huge_get_and_clear(vma->vm_mm, addr, pmdp); in clear_soft_dirty_pmd() local
[all …]
/linux-4.4.14/arch/cris/arch-v10/mm/
Dfault.c49 pmd_t *pmd; in handle_mmu_bus_fault() local
84 pmd = (pmd_t *)(pgd + pgd_index(address)); in handle_mmu_bus_fault()
85 if (pmd_none(*pmd)) in handle_mmu_bus_fault()
87 pte = *pte_offset_kernel(pmd, address); in handle_mmu_bus_fault()
/linux-4.4.14/arch/x86/xen/
Dmmu.c440 __visible pmdval_t xen_pmd_val(pmd_t pmd) in xen_pmd_val() argument
442 return pte_mfn_to_pfn(pmd.pmd); in xen_pmd_val()
499 __visible pmd_t xen_make_pmd(pmdval_t pmd) in xen_make_pmd() argument
501 pmd = pte_pfn_to_mfn(pmd); in xen_make_pmd()
502 return native_make_pmd(pmd); in xen_make_pmd()
662 pmd_t *pmd; in __xen_pgd_walk() local
671 pmd = pmd_offset(&pud[pudidx], 0); in __xen_pgd_walk()
674 flush |= (*func)(mm, virt_to_page(pmd), PT_PMD); in __xen_pgd_walk()
684 if (pmd_none(pmd[pmdidx])) in __xen_pgd_walk()
687 pte = pmd_page(pmd[pmdidx]); in __xen_pgd_walk()
[all …]
/linux-4.4.14/arch/um/kernel/skas/
Dmmu.c22 pmd_t *pmd; in init_stub_pte() local
30 pmd = pmd_alloc(mm, pud, proc); in init_stub_pte()
31 if (!pmd) in init_stub_pte()
34 pte = pte_alloc_map(mm, NULL, pmd, proc); in init_stub_pte()
43 pmd_free(mm, pmd); in init_stub_pte()
Duaccess.c21 pmd_t *pmd; in virt_to_pte() local
34 pmd = pmd_offset(pud, addr); in virt_to_pte()
35 if (!pmd_present(*pmd)) in virt_to_pte()
38 return pte_offset_kernel(pmd, addr); in virt_to_pte()
/linux-4.4.14/arch/m68k/mm/
Dmcfmmu.c89 pmd_t *pmd; in cf_tlb_miss() local
110 pmd = pmd_offset(pgd, mmuar); in cf_tlb_miss()
111 if (pmd_none(*pmd)) { in cf_tlb_miss()
116 pte = (KMAPAREA(mmuar)) ? pte_offset_kernel(pmd, mmuar) in cf_tlb_miss()
117 : pte_offset_map(pmd, mmuar); in cf_tlb_miss()
Dmotorola.c72 unsigned long pmd, last; in kernel_ptr_table() local
83 pmd = __pgd_page(kernel_pg_dir[i]); in kernel_ptr_table()
84 if (pmd > last) in kernel_ptr_table()
85 last = pmd; in kernel_ptr_table()
158 pmd_dir->pmd[(virtaddr/PTRTREESIZE) & 15] = physaddr; in map_node()
167 pmd_dir->pmd[0] = virt_to_phys(pte_dir) | in map_node()
Dkmap.c200 pmd_dir->pmd[(virtaddr/PTRTREESIZE) & 15] = physaddr; in __ioremap()
265 int pmd_type = pmd_dir->pmd[pmd_off] & _DESCTYPE_MASK; in __iounmap()
268 pmd_dir->pmd[pmd_off] = 0; in __iounmap()
344 if ((pmd_dir->pmd[pmd_off] & _DESCTYPE_MASK) == _PAGE_PRESENT) { in kernel_set_cachemode()
345 pmd_dir->pmd[pmd_off] = (pmd_dir->pmd[pmd_off] & in kernel_set_cachemode()
/linux-4.4.14/arch/m32r/mm/
Dmmu.S149 or r3, r2 ; r3: pmd addr
151 ; pmd = pmd_offset(pgd, address);
152 ld r3, @r3 ; r3: pmd data
153 beqz r3, 3f ; pmd_none(*pmd) ?
157 bnez r2, 3f ; pmd_bad(*pmd) ?
160 ; pte = pte_offset(pmd, address);
266 ; pmd = pmd_offset(pgd, address);
267 ld r1, @r3 ; r1: pmd
268 beqz r1, 3f ; pmd_none(*pmd) ?
272 bne r1, r4, 3f ; pmd_bad(*pmd) ?
[all …]
/linux-4.4.14/Documentation/devicetree/bindings/edac/
Dapm-xgene-edac.txt30 - compatible : Shall be "apm,xgene-edac-pmd" or
31 "apm,xgene-edac-pmd-v2".
33 - pmd-controller : Instance number of the PMD controller.
88 compatible = "apm,xgene-edac-pmd";
90 pmd-controller = <0>;
/linux-4.4.14/arch/microblaze/mm/
Dpgtable.c194 pmd_t *pmd; in get_pteptr() local
200 pmd = pmd_offset(pgd, addr & PAGE_MASK); in get_pteptr()
201 if (pmd_present(*pmd)) { in get_pteptr()
202 pte = pte_offset_kernel(pmd, addr & PAGE_MASK); in get_pteptr()
/linux-4.4.14/drivers/edac/
Dxgene_edac.c528 u32 pmd; member
546 ctx->pmd * MAX_CPU_PER_PMD + cpu_idx, val, in xgene_edac_pmd_l1_check()
586 ctx->pmd * MAX_CPU_PER_PMD + cpu_idx, val, in xgene_edac_pmd_l1_check()
630 ctx->pmd * MAX_CPU_PER_PMD + cpu_idx, val, in xgene_edac_pmd_l1_check()
690 ctx->pmd, val, val_hi, val_lo); in xgene_edac_pmd_l2_check()
742 ctx->pmd, val, val_hi, val_lo); in xgene_edac_pmd_l2_check()
754 if (!((PMD0_MERR_MASK << ctx->pmd) & pcp_hp_stat)) in xgene_edac_pmd_check()
804 PMD0_MERR_MASK << ctx->pmd); in xgene_edac_pmd_hw_ctl()
807 PMD0_MERR_MASK << ctx->pmd); in xgene_edac_pmd_hw_ctl()
883 snprintf(name, sizeof(name), "PMD%d", ctx->pmd); in xgene_edac_pmd_create_debugfs_nodes()
[all …]
/linux-4.4.14/arch/arm/mach-shmobile/
Dpm-rmobile.c337 struct device_node *np, *pmd; in rmobile_init_pm_domains() local
349 pmd = of_get_child_by_name(np, "pm-domains"); in rmobile_init_pm_domains()
350 if (!pmd) { in rmobile_init_pm_domains()
361 ret = rmobile_add_pm_domains(base, pmd, NULL); in rmobile_init_pm_domains()
362 of_node_put(pmd); in rmobile_init_pm_domains()
/linux-4.4.14/arch/m68k/sun3x/
Ddvma.c101 pmd_t *pmd; in dvma_map_cpu() local
104 if((pmd = pmd_alloc(&init_mm, pgd, vaddr)) == NULL) { in dvma_map_cpu()
118 if((pte = pte_alloc_kernel(pmd, vaddr)) == NULL) { in dvma_map_cpu()

12