Lines Matching +full:compare +full:- +full:and +full:- +full:swap
1 /* SPDX-License-Identifier: GPL-2.0 */
10 * to any CPU and may be used for translation by that CPU except to
12 * or INVALIDATE DAT TABLE ENTRY, (2) alter bits 56-63 of a page
13 * table entry, or (3) make a change by means of a COMPARE AND SWAP
14 * AND PURGE instruction that purges the TLB."
38 #include <asm-generic/tlb.h>
65 VM_WARN_ON_ONCE(page_folio(page) != page_folio(page + nr_pages - 1)); in __tlb_remove_folio_pages()
73 __tlb_flush_mm_lazy(tlb->mm); in tlb_flush()
77 * pte_free_tlb frees a pte table and clears the CRSTE for the
84 tlb->mm->context.flush_mm = 1; in pte_free_tlb()
85 tlb->freed_tables = 1; in pte_free_tlb()
86 tlb->cleared_pmds = 1; in pte_free_tlb()
87 if (mm_alloc_pgste(tlb->mm)) in pte_free_tlb()
88 gmap_unlink(tlb->mm, (unsigned long *)pte, address); in pte_free_tlb()
93 * pmd_free_tlb frees a pmd table and clears the CRSTE for the
102 if (mm_pmd_folded(tlb->mm)) in pmd_free_tlb()
105 tlb->mm->context.flush_mm = 1; in pmd_free_tlb()
106 tlb->freed_tables = 1; in pmd_free_tlb()
107 tlb->cleared_puds = 1; in pmd_free_tlb()
112 * p4d_free_tlb frees a pud table and clears the CRSTE for the
121 if (mm_p4d_folded(tlb->mm)) in p4d_free_tlb()
124 tlb->mm->context.flush_mm = 1; in p4d_free_tlb()
125 tlb->freed_tables = 1; in p4d_free_tlb()
130 * pud_free_tlb frees a pud table and clears the CRSTE for the
139 if (mm_pud_folded(tlb->mm)) in pud_free_tlb()
142 tlb->mm->context.flush_mm = 1; in pud_free_tlb()
143 tlb->freed_tables = 1; in pud_free_tlb()
144 tlb->cleared_p4ds = 1; in pud_free_tlb()