On Mon, 2022-10-24 at 14:30 +1100, Russell Currey wrote: > On Fri, 2022-10-21 at 16:22 +1100, Benjamin Gray wrote: > > Adds a local TLB flush operation that works given an mm_struct, VA > > to > > flush, and page size representation. > > > > This removes the need to create a vm_area_struct, which the > > temporary > > patching mm work does not need. > > > > Signed-off-by: Benjamin Gray <bg...@linux.ibm.com> > > --- > > arch/powerpc/include/asm/book3s/32/tlbflush.h | 9 +++++++++ > > arch/powerpc/include/asm/book3s/64/tlbflush-hash.h | 5 +++++ > > arch/powerpc/include/asm/book3s/64/tlbflush.h | 8 ++++++++ > > arch/powerpc/include/asm/nohash/tlbflush.h | 1 + > > 4 files changed, 23 insertions(+) > > > > diff --git a/arch/powerpc/include/asm/book3s/32/tlbflush.h > > b/arch/powerpc/include/asm/book3s/32/tlbflush.h > > index ba1743c52b56..e5a688cebf69 100644 > > --- a/arch/powerpc/include/asm/book3s/32/tlbflush.h > > +++ b/arch/powerpc/include/asm/book3s/32/tlbflush.h > > @@ -2,6 +2,8 @@ > > #ifndef _ASM_POWERPC_BOOK3S_32_TLBFLUSH_H > > #define _ASM_POWERPC_BOOK3S_32_TLBFLUSH_H > > > > +#include <linux/build_bug.h> > > + > > #define MMU_NO_CONTEXT (0) > > /* > > * TLB flushing for "classic" hash-MMU 32-bit CPUs, 6xx, 7xx, 7xxx > > @@ -74,6 +76,13 @@ static inline void local_flush_tlb_page(struct > > vm_area_struct *vma, > > { > > flush_tlb_page(vma, vmaddr); > > } > > + > > +static inline void local_flush_tlb_page_psize(struct mm_struct > > *mm, > > unsigned long vmaddr, int psize) > > +{ > > + BUILD_BUG_ON(psize != MMU_PAGE_4K); > > Is there any utility in adding this for 32bit if the following > patches > are only for Radix?
It needs some kind of definition to avoid #ifdef's. I figured I may as well provide a correct implementation, given the functions around it are implemented. The BUILD_BUG_ON specifically is just defensive in case my assumptions are wrong. I don't know anything about these machines, just what the kernel defines. I can remove the check, or replace the whole implementation with a BUILD_BUG?