Re: [PATCH v3 03/13] powerpc/mm: implement arch_flush_lazy_mmu_mode()

From: David Hildenbrand

Date: Thu Oct 23 2025 - 15:36:58 EST


On 15.10.25 10:27, Kevin Brodsky wrote:
Upcoming changes to the lazy_mmu API will cause
arch_flush_lazy_mmu_mode() to be called when leaving a nested
lazy_mmu section.

Move the relevant logic from arch_leave_lazy_mmu_mode() to
arch_flush_lazy_mmu_mode() and have the former call the latter.

Signed-off-by: Kevin Brodsky <kevin.brodsky@xxxxxxx>
---
.../powerpc/include/asm/book3s/64/tlbflush-hash.h | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
index 146287d9580f..7704dbe8e88d 100644
--- a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
+++ b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
@@ -41,6 +41,16 @@ static inline void arch_enter_lazy_mmu_mode(void)
batch->active = 1;
}
+static inline void arch_flush_lazy_mmu_mode(void)
+{
+ struct ppc64_tlb_batch *batch;
+
+ batch = this_cpu_ptr(&ppc64_tlb_batch);

The downside is the double this_cpu_ptr() now on the arch_leave_lazy_mmu_mode() path.

You could just have a helper function that is called by either or just ... leave arch_leave_lazy_mmu_mode() alone and just replicate the two statements here in arch_flush_lazy_mmu_mode().

I would do just that :)

--
Cheers

David / dhildenb