On 10/14/19 10:41 AM, Linus Torvalds wrote: > On Fri, Oct 11, 2019 at 3:38 PM Vineet Gupta <Vineet.Gupta1@xxxxxxxxxxxx> wrote: >> >> This is inine with similar patches for nopud [1] and nop4d [2] cases. > > I don't think your patch is wrong, but wouldn't it be easier and > cleaner to just do this instead > > --- a/include/asm-generic/pgtable-nopmd.h > +++ b/include/asm-generic/pgtable-nopmd.h > @@ -60,7 +60,7 @@ static inline pmd_t * pmd_offset(pud_t * pud, > unsigned long address) > static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) > { > } > -#define __pmd_free_tlb(tlb, x, a) do { } while (0) > +#define pmd_free_tlb(tlb, x, a) do { } while (0) > > #undef pmd_addr_end > #define pmd_addr_end(addr, end) (end) I suppose we could but (a) It would be asymmetric with the __p{u,4}d_free_tlb() changes in [1] and [2]. Do you prefer [1] and [2] be repun along the same lines as you propose above ? (b) IMHO p?d_free_tlb() under corresponding #ifndef *P?D_FOLDED is much clearer to read as being stubbed out. But this is minor point. Also would you care to shed light on my other question about not being able to fold away pmd_clear_bad() despite PMD_FOLDED given the pmd macros actually checking for pgd. Of all the people you are likely to have most insight on how the pmd folding actually evolved and works :-) Thx, -Vineet [1] http://lists.infradead.org/pipermail/linux-snps-arc/2019-October/006266.html [2] http://lists.infradead.org/pipermail/linux-snps-arc/2019-October/006265.html