On Thu, Jun 14, 2018 at 11:49 AM Nicholas Piggin <npiggin@xxxxxxxxx> wrote: > > +#ifndef pte_free_tlb > #define pte_free_tlb(tlb, ptep, address) \ > do { \ > __tlb_adjust_range(tlb, address, PAGE_SIZE); \ > __pte_free_tlb(tlb, ptep, address); \ > } while (0) > +#endif Do you really want to / need to take over the whole pte_free_tlb macro? I was hoping that you'd just replace the __tlv_adjust_range() instead. Something like - replace the __tlb_adjust_range(tlb, address, PAGE_SIZE); with a "page directory" version: __tlb_free_directory(tlb, address, size); - have the default implementation for that be the old code: #ifndef __tlb_free_directory #define __tlb_free_directory(tlb,addr,size) __tlb_adjust_range(tlb, addr, PAGE_SIZE) #endif and that way architectures can now just hook into that "__tlb_free_directory()" thing. Hmm? Linus