Lines Matching +full:non +full:- +full:overlap +full:- +full:time
1 // SPDX-License-Identifier: GPL-2.0-or-later
7 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
27 #include <asm/pte-walk.h>
51 i = batch->index; in hpte_need_flush()
58 * must still exist (and thus the VMA not reused) at the time in hpte_need_flush()
65 addr &= ~((1UL << mmu_psize_defs[psize].shift) - 1); in hpte_need_flush()
90 vsid = get_user_vsid(&mm->context, addr, ssize); in hpte_need_flush()
103 if (!batch->active) { in hpte_need_flush()
119 if (i != 0 && (mm != batch->mm || batch->psize != psize || in hpte_need_flush()
120 batch->ssize != ssize)) { in hpte_need_flush()
125 batch->mm = mm; in hpte_need_flush()
126 batch->psize = psize; in hpte_need_flush()
127 batch->ssize = ssize; in hpte_need_flush()
129 batch->pte[i] = rpte; in hpte_need_flush()
130 batch->vpn[i] = vpn; in hpte_need_flush()
131 batch->index = ++i; in hpte_need_flush()
142 * Must be called from within some kind of spinlock/non-preempt region...
148 i = batch->index; in __flush_tlb_pending()
149 local = mm_is_thread_local(batch->mm); in __flush_tlb_pending()
151 flush_hash_page(batch->vpn[0], batch->pte[0], in __flush_tlb_pending()
152 batch->psize, batch->ssize, local); in __flush_tlb_pending()
155 batch->index = 0; in __flush_tlb_pending()
167 if (tlbbatch->index) in hash__tlb_flush()
174 * __flush_hash_table_range - Flush all HPTEs for a given address range
183 * space on a removed PCI-PCI bidge without tearing down the full mapping
184 * since 64K pages may overlap with other bridges when using 64K pages