[RFC PATCH 4/5] powerpc/64s/radix: implement complete radix__ptep_get_and_clear_full
Nicholas Piggin
npiggin at gmail.com
Sun Dec 20 10:48:12 AEDT 2020
Currently the radix variant is only called when full=true. Allow
radix to take over the entire function.
Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
---
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 +++-------
arch/powerpc/include/asm/book3s/64/radix.h | 4 ++++
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
index 058601efbc8a..410a917c0c60 100644
--- a/arch/powerpc/include/asm/book3s/64/pgtable.h
+++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -483,14 +483,10 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm,
unsigned long addr,
pte_t *ptep, int full)
{
- if (full && radix_enabled()) {
- /*
- * We know that this is a full mm pte clear and
- * hence can be sure there is no parallel set_pte.
- */
+ if (radix_enabled())
return radix__ptep_get_and_clear_full(mm, addr, ptep, full);
- }
- return ptep_get_and_clear(mm, addr, ptep);
+ else
+ return ptep_get_and_clear(mm, addr, ptep);
}
diff --git a/arch/powerpc/include/asm/book3s/64/radix.h b/arch/powerpc/include/asm/book3s/64/radix.h
index c7813dc628fc..2491f3befda0 100644
--- a/arch/powerpc/include/asm/book3s/64/radix.h
+++ b/arch/powerpc/include/asm/book3s/64/radix.h
@@ -185,6 +185,10 @@ static inline pte_t radix__ptep_get_and_clear_full(struct mm_struct *mm,
unsigned long old_pte;
if (full) {
+ /*
+ * We know that this is a full mm pte clear and
+ * hence can be sure there is no parallel set_pte.
+ */
old_pte = pte_val(*ptep);
*ptep = __pte(0);
} else
--
2.23.0
More information about the Linuxppc-dev
mailing list