powerpc/64s/radix: make ptep_get_and_clear_full non-atomic for the full case
This matches other architectures, when we know there will be no further accesses to the address (e.g., for teardown), page table entries can be cleared non-atomically. The comments about NMMU are bogus: all MMU notifiers (including NMMU) are released at this point, with their TLBs flushed. An NMMU access at this point would be a bug. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
6d8278c414
commit
f569bd94ef
|
@ -180,14 +180,8 @@ static inline pte_t radix__ptep_get_and_clear_full(struct mm_struct *mm,
|
|||
unsigned long old_pte;
|
||||
|
||||
if (full) {
|
||||
/*
|
||||
* If we are trying to clear the pte, we can skip
|
||||
* the DD1 pte update sequence and batch the tlb flush. The
|
||||
* tlb flush batching is done by mmu gather code. We
|
||||
* still keep the cmp_xchg update to make sure we get
|
||||
* correct R/C bit which might be updated via Nest MMU.
|
||||
*/
|
||||
old_pte = __radix_pte_update(ptep, ~0ul, 0);
|
||||
old_pte = pte_val(*ptep);
|
||||
*ptep = __pte(0);
|
||||
} else
|
||||
old_pte = radix__pte_update(mm, addr, ptep, ~0ul, 0, 0);
|
||||
|
||||
|
|
Loading…
Reference in New Issue