The patch titled Subject: nios2: switch to generic version of pte allocation has been added to the -mm tree. Its filename is nios2-switch-to-generic-version-of-pte-allocation.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/nios2-switch-to-generic-version-of-pte-allocation.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/nios2-switch-to-generic-version-of-pte-allocation.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Mike Rapoport <rppt@xxxxxxxxxxxxx> Subject: nios2: switch to generic version of pte allocation nios2 allocates kernel PTE pages with __get_free_pages(GFP_KERNEL | __GFP_ZERO, PTE_ORDER); and user page tables with pte = alloc_pages(GFP_KERNEL, PTE_ORDER); if (pte) clear_highpage(); The PTE_ORDER is hardwired to zero, which makes nios2 implementation almost identical to the generic one. Switch nios2 to the generic version that does exactly the same thing for the kernel page tables and adds __GFP_ACCOUNT for the user PTEs. The pte_free_kernel() and pte_free() versions on nios2 are identical to the generic ones and can be simply dropped. Link: http://lkml.kernel.org/r/1557296232-15361-11-git-send-email-rppt@xxxxxxxxxxxxx Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxx> Cc: Albert Ou <aou@xxxxxxxxxxxxxxxxx> Cc: Anshuman Khandual <anshuman.khandual@xxxxxxx> Cc: Anton Ivanov <anton.ivanov@xxxxxxxxxxxxxxxxxx> Cc: Arnd Bergmann <arnd@xxxxxxxx> Cc: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> Cc: Greentime Hu <green.hu@xxxxxxxxx> Cc: Guan Xuetao <gxt@xxxxxxxxxx> Cc: Guo Ren <guoren@xxxxxxxxxx> Cc: Guo Ren <ren_guo@xxxxxxxxx> Cc: Helge Deller <deller@xxxxxx> Cc: Ley Foon Tan <lftan@xxxxxxxxxx> Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx> Cc: Matt Turner <mattst88@xxxxxxxxx> Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxx> Cc: Palmer Dabbelt <palmer@xxxxxxxxxx> Cc: Paul Burton <paul.burton@xxxxxxxx> Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx> Cc: Richard Kuo <rkuo@xxxxxxxxxxxxxx> Cc: Richard Weinberger <richard@xxxxxx> Cc: Russell King <linux@xxxxxxxxxxxxxxx> Cc: Sam Creasey <sammy@xxxxxxxxx> Cc: Vincent Chen <deanbo422@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/nios2/include/asm/pgalloc.h | 37 +---------------------------- 1 file changed, 2 insertions(+), 35 deletions(-) --- a/arch/nios2/include/asm/pgalloc.h~nios2-switch-to-generic-version-of-pte-allocation +++ a/arch/nios2/include/asm/pgalloc.h @@ -12,6 +12,8 @@ #include <linux/mm.h> +#include <asm-generic/pgalloc.h> /* for pte_{alloc,free}_one */ + static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) { @@ -37,41 +39,6 @@ static inline void pgd_free(struct mm_st free_pages((unsigned long)pgd, PGD_ORDER); } -static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm) -{ - pte_t *pte; - - pte = (pte_t *) __get_free_pages(GFP_KERNEL|__GFP_ZERO, PTE_ORDER); - - return pte; -} - -static inline pgtable_t pte_alloc_one(struct mm_struct *mm) -{ - struct page *pte; - - pte = alloc_pages(GFP_KERNEL, PTE_ORDER); - if (pte) { - if (!pgtable_page_ctor(pte)) { - __free_page(pte); - return NULL; - } - clear_highpage(pte); - } - return pte; -} - -static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) -{ - free_pages((unsigned long)pte, PTE_ORDER); -} - -static inline void pte_free(struct mm_struct *mm, struct page *pte) -{ - pgtable_page_dtor(pte); - __free_pages(pte, PTE_ORDER); -} - #define __pte_free_tlb(tlb, pte, addr) \ do { \ pgtable_page_dtor(pte); \ _ Patches currently in -mm which might be from rppt@xxxxxxxxxxxxx are mm-gup-continue-vm_fault_retry-processing-event-for-pre-faults.patch arm-remove-arch_select_memory_model.patch s390-remove-arch_select_memory_model.patch sparc-remove-arch_select_memory_model.patch asm-generic-x86-introduce-generic-pte_allocfree_one.patch alpha-switch-to-generic-version-of-pte-allocation.patch arm-switch-to-generic-version-of-pte-allocation.patch arm64-switch-to-generic-version-of-pte-allocation.patch csky-switch-to-generic-version-of-pte-allocation.patch m68k-sun3-switch-to-generic-version-of-pte-allocation.patch mips-switch-to-generic-version-of-pte-allocation.patch nds32-switch-to-generic-version-of-pte-allocation.patch nios2-switch-to-generic-version-of-pte-allocation.patch parisc-switch-to-generic-version-of-pte-allocation.patch riscv-switch-to-generic-version-of-pte-allocation.patch um-switch-to-generic-version-of-pte-allocation.patch unicore32-switch-to-generic-version-of-pte-allocation.patch