"Aneesh Kumar K.V" <aneesh.ku...@linux.vnet.ibm.com> writes:
> diff --git a/arch/powerpc/mm/tlb-radix.c b/arch/powerpc/mm/tlb-radix.c > index 3493cf4e0452..7648952e4f08 100644 > --- a/arch/powerpc/mm/tlb-radix.c > +++ b/arch/powerpc/mm/tlb-radix.c > @@ -428,3 +428,21 @@ void radix__flush_tlb_all(void) > : : "r"(rb), "i"(r), "i"(prs), "i"(ric), "r"(0) : > "memory"); > asm volatile("eieio; tlbsync; ptesync": : :"memory"); > } > + > +void radix__flush_tlb_pte(unsigned long old_pte, struct mm_struct *mm, > + unsigned long address) > +{ > + /* > + * We track page size in pte only for DD1, So we can > + * call this only on DD1. > + */ > + if (!cpu_has_feature(CPU_FTR_POWER9_DD1)) { > + VM_WARN_ON(1); > + return; > + } That's a bit gross but I guess it's OK. How about we give the function a name that makes it obvious as well? Like radix__flush_tlb_pte_p9_dd1() - ugly but unlikely anyone would call it by accident outside of a workaround. cheers