Lines Matching full:pmd
28 bool __init __early_make_pgtable(unsigned long address, pmdval_t pmd);
74 #define set_pmd(pmdp, pmd) native_set_pmd(pmdp, pmd) argument
98 #define pmd_clear(pmd) native_pmd_clear(pmd) argument
144 static inline bool pmd_dirty(pmd_t pmd) in pmd_dirty() argument
146 return pmd_flags(pmd) & _PAGE_DIRTY_BITS; in pmd_dirty()
149 static inline bool pmd_shstk(pmd_t pmd) in pmd_shstk() argument
152 (pmd_flags(pmd) & (_PAGE_RW | _PAGE_DIRTY | _PAGE_PSE)) == in pmd_shstk()
157 static inline int pmd_young(pmd_t pmd) in pmd_young() argument
159 return pmd_flags(pmd) & _PAGE_ACCESSED; in pmd_young()
182 static inline int pmd_write(pmd_t pmd) in pmd_write() argument
188 return (pmd_flags(pmd) & _PAGE_RW) || pmd_shstk(pmd); in pmd_write()
230 static inline unsigned long pmd_pfn(pmd_t pmd) in pmd_pfn() argument
232 phys_addr_t pfn = pmd_val(pmd); in pmd_pfn()
234 return (pfn & pmd_pfn_mask(pmd)) >> PAGE_SHIFT; in pmd_pfn()
271 static inline int pmd_trans_huge(pmd_t pmd) in pmd_trans_huge() argument
273 return (pmd_val(pmd) & (_PAGE_PSE|_PAGE_DEVMAP)) == _PAGE_PSE; in pmd_trans_huge()
290 static inline int pmd_devmap(pmd_t pmd) in pmd_devmap() argument
292 return !!(pmd_val(pmd) & _PAGE_DEVMAP); in pmd_devmap()
477 static inline pmd_t pmd_set_flags(pmd_t pmd, pmdval_t set) in pmd_set_flags() argument
479 pmdval_t v = native_pmd_val(pmd); in pmd_set_flags()
484 static inline pmd_t pmd_clear_flags(pmd_t pmd, pmdval_t clear) in pmd_clear_flags() argument
486 pmdval_t v = native_pmd_val(pmd); in pmd_clear_flags()
492 static inline pmd_t pmd_mksaveddirty(pmd_t pmd) in pmd_mksaveddirty() argument
494 pmdval_t v = native_pmd_val(pmd); in pmd_mksaveddirty()
501 static inline pmd_t pmd_clear_saveddirty(pmd_t pmd) in pmd_clear_saveddirty() argument
503 pmdval_t v = native_pmd_val(pmd); in pmd_clear_saveddirty()
509 static inline pmd_t pmd_wrprotect(pmd_t pmd) in pmd_wrprotect() argument
511 pmd = pmd_clear_flags(pmd, _PAGE_RW); in pmd_wrprotect()
515 * a shadow stack PMD (RW=0, Dirty=1). Move the hardware in pmd_wrprotect()
518 return pmd_mksaveddirty(pmd); in pmd_wrprotect()
522 static inline int pmd_uffd_wp(pmd_t pmd) in pmd_uffd_wp() argument
524 return pmd_flags(pmd) & _PAGE_UFFD_WP; in pmd_uffd_wp()
527 static inline pmd_t pmd_mkuffd_wp(pmd_t pmd) in pmd_mkuffd_wp() argument
529 return pmd_wrprotect(pmd_set_flags(pmd, _PAGE_UFFD_WP)); in pmd_mkuffd_wp()
532 static inline pmd_t pmd_clear_uffd_wp(pmd_t pmd) in pmd_clear_uffd_wp() argument
534 return pmd_clear_flags(pmd, _PAGE_UFFD_WP); in pmd_clear_uffd_wp()
538 static inline pmd_t pmd_mkold(pmd_t pmd) in pmd_mkold() argument
540 return pmd_clear_flags(pmd, _PAGE_ACCESSED); in pmd_mkold()
543 static inline pmd_t pmd_mkclean(pmd_t pmd) in pmd_mkclean() argument
545 return pmd_clear_flags(pmd, _PAGE_DIRTY_BITS); in pmd_mkclean()
548 static inline pmd_t pmd_mkdirty(pmd_t pmd) in pmd_mkdirty() argument
550 pmd = pmd_set_flags(pmd, _PAGE_DIRTY | _PAGE_SOFT_DIRTY); in pmd_mkdirty()
552 return pmd_mksaveddirty(pmd); in pmd_mkdirty()
555 static inline pmd_t pmd_mkwrite_shstk(pmd_t pmd) in pmd_mkwrite_shstk() argument
557 pmd = pmd_clear_flags(pmd, _PAGE_RW); in pmd_mkwrite_shstk()
559 return pmd_set_flags(pmd, _PAGE_DIRTY); in pmd_mkwrite_shstk()
562 static inline pmd_t pmd_mkdevmap(pmd_t pmd) in pmd_mkdevmap() argument
564 return pmd_set_flags(pmd, _PAGE_DEVMAP); in pmd_mkdevmap()
567 static inline pmd_t pmd_mkhuge(pmd_t pmd) in pmd_mkhuge() argument
569 return pmd_set_flags(pmd, _PAGE_PSE); in pmd_mkhuge()
572 static inline pmd_t pmd_mkyoung(pmd_t pmd) in pmd_mkyoung() argument
574 return pmd_set_flags(pmd, _PAGE_ACCESSED); in pmd_mkyoung()
577 static inline pmd_t pmd_mkwrite_novma(pmd_t pmd) in pmd_mkwrite_novma() argument
579 return pmd_set_flags(pmd, _PAGE_RW); in pmd_mkwrite_novma()
582 pmd_t pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma);
674 static inline int pmd_soft_dirty(pmd_t pmd) in pmd_soft_dirty() argument
676 return pmd_flags(pmd) & _PAGE_SOFT_DIRTY; in pmd_soft_dirty()
689 static inline pmd_t pmd_mksoft_dirty(pmd_t pmd) in pmd_mksoft_dirty() argument
691 return pmd_set_flags(pmd, _PAGE_SOFT_DIRTY); in pmd_mksoft_dirty()
704 static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd) in pmd_clear_soft_dirty() argument
706 return pmd_clear_flags(pmd, _PAGE_SOFT_DIRTY); in pmd_clear_soft_dirty()
771 static inline pmd_t pmd_mkinvalid(pmd_t pmd) in pmd_mkinvalid() argument
773 return pfn_pmd(pmd_pfn(pmd), in pmd_mkinvalid()
774 __pgprot(pmd_flags(pmd) & ~(_PAGE_PRESENT|_PAGE_PROTNONE))); in pmd_mkinvalid()
812 static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot) in pmd_modify() argument
814 pmdval_t val = pmd_val(pmd), oldval = val; in pmd_modify()
975 static inline int pmd_present(pmd_t pmd) in pmd_present() argument
983 return pmd_flags(pmd) & (_PAGE_PRESENT | _PAGE_PROTNONE | _PAGE_PSE); in pmd_present()
997 static inline int pmd_protnone(pmd_t pmd) in pmd_protnone() argument
999 return (pmd_flags(pmd) & (_PAGE_PROTNONE | _PAGE_PRESENT)) in pmd_protnone()
1004 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
1008 unsigned long val = native_pmd_val(pmd); in pmd_none()
1012 static inline unsigned long pmd_page_vaddr(pmd_t pmd) in pmd_page_vaddr() argument
1014 return (unsigned long)__va(pmd_val(pmd) & pmd_pfn_mask(pmd)); in pmd_page_vaddr()
1021 #define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd)) argument
1039 static inline int pmd_bad(pmd_t pmd) in pmd_bad() argument
1041 return (pmd_flags(pmd) & ~(_PAGE_USER | _PAGE_ACCESSED)) != in pmd_bad()
1229 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument
1231 page_table_check_pmd_set(mm, pmdp, pmd); in set_pmd_at()
1232 set_pmd(pmdp, pmd); in set_pmd_at()
1336 pmd_t pmd = native_pmdp_get_and_clear(pmdp); in pmdp_huge_get_and_clear() local
1338 page_table_check_pmd_clear(mm, pmd); in pmdp_huge_get_and_clear()
1340 return pmd; in pmdp_huge_get_and_clear()
1374 unsigned long address, pmd_t *pmdp, pmd_t pmd) in pmdp_establish()
1376 page_table_check_pmd_set(vma->vm_mm, pmdp, pmd); in pmdp_establish()
1378 return xchg(pmdp, pmd); in pmdp_establish()
1381 WRITE_ONCE(*pmdp, pmd); in pmdp_establish()
1507 unsigned long addr, pmd_t *pmd) in update_mmu_cache_pmd() argument
1546 static inline pmd_t pmd_swp_mksoft_dirty(pmd_t pmd) in pmd_swp_mksoft_dirty() argument
1548 return pmd_set_flags(pmd, _PAGE_SWP_SOFT_DIRTY); in pmd_swp_mksoft_dirty()
1551 static inline int pmd_swp_soft_dirty(pmd_t pmd) in pmd_swp_soft_dirty() argument
1553 return pmd_flags(pmd) & _PAGE_SWP_SOFT_DIRTY; in pmd_swp_soft_dirty()
1556 static inline pmd_t pmd_swp_clear_soft_dirty(pmd_t pmd) in pmd_swp_clear_soft_dirty() argument
1558 return pmd_clear_flags(pmd, _PAGE_SWP_SOFT_DIRTY); in pmd_swp_clear_soft_dirty()
1579 static inline pmd_t pmd_swp_mkuffd_wp(pmd_t pmd) in pmd_swp_mkuffd_wp() argument
1581 return pmd_set_flags(pmd, _PAGE_SWP_UFFD_WP); in pmd_swp_mkuffd_wp()
1584 static inline int pmd_swp_uffd_wp(pmd_t pmd) in pmd_swp_uffd_wp() argument
1586 return pmd_flags(pmd) & _PAGE_SWP_UFFD_WP; in pmd_swp_uffd_wp()
1589 static inline pmd_t pmd_swp_clear_uffd_wp(pmd_t pmd) in pmd_swp_clear_uffd_wp() argument
1591 return pmd_clear_flags(pmd, _PAGE_SWP_UFFD_WP); in pmd_swp_clear_uffd_wp()
1618 * 'pteval' can come from a PTE, PMD or PUD. We only check
1647 static inline bool pmd_access_permitted(pmd_t pmd, bool write) in pmd_access_permitted() argument
1649 return __pte_access_permitted(pmd_val(pmd), write); in pmd_access_permitted()
1676 void arch_check_zapped_pmd(struct vm_area_struct *vma, pmd_t pmd);
1692 static inline bool pmd_user_accessible_page(pmd_t pmd) in pmd_user_accessible_page() argument
1694 return pmd_leaf(pmd) && (pmd_val(pmd) & _PAGE_PRESENT) && (pmd_val(pmd) & _PAGE_USER); in pmd_user_accessible_page()