mm: treewide: clarify pgtable_page_{ctor,dtor}() naming
authorMark Rutland <mark.rutland@arm.com>
Wed, 25 Sep 2019 23:49:46 +0000 (16:49 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 26 Sep 2019 17:10:44 +0000 (10:10 -0700)
The naming of pgtable_page_{ctor,dtor}() seems to have confused a few
people, and until recently arm64 used these erroneously/pointlessly for
other levels of page table.

To make it incredibly clear that these only apply to the PTE level, and to
align with the naming of pgtable_pmd_page_{ctor,dtor}(), let's rename them
to pgtable_pte_page_{ctor,dtor}().

These changes were generated with the following shell script:

----
git grep -lw 'pgtable_page_.tor' | while read FILE; do
    sed -i '{s/pgtable_page_ctor/pgtable_pte_page_ctor/}' $FILE;
    sed -i '{s/pgtable_page_dtor/pgtable_pte_page_dtor/}' $FILE;
done
----

... with the documentation re-flowed to remain under 80 columns, and
whitespace fixed up in macros to keep backslashes aligned.

There should be no functional change as a result of this patch.

Link: http://lkml.kernel.org/r/20190722141133.3116-1-mark.rutland@arm.com
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Mike Rapoport <rppt@linux.ibm.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> [m68k]
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Yu Zhao <yuzhao@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
26 files changed:
Documentation/vm/split_page_table_lock.rst
arch/arc/include/asm/pgalloc.h
arch/arm/include/asm/tlb.h
arch/arm/mm/mmu.c
arch/arm64/include/asm/tlb.h
arch/arm64/mm/mmu.c
arch/csky/include/asm/pgalloc.h
arch/hexagon/include/asm/pgalloc.h
arch/m68k/include/asm/mcf_pgalloc.h
arch/m68k/include/asm/motorola_pgalloc.h
arch/m68k/include/asm/sun3_pgalloc.h
arch/mips/include/asm/pgalloc.h
arch/nios2/include/asm/pgalloc.h
arch/openrisc/include/asm/pgalloc.h
arch/powerpc/mm/pgtable-frag.c
arch/riscv/include/asm/pgalloc.h
arch/s390/mm/pgalloc.c
arch/sh/include/asm/pgalloc.h
arch/sparc/mm/init_64.c
arch/sparc/mm/srmmu.c
arch/um/include/asm/pgalloc.h
arch/unicore32/include/asm/tlb.h
arch/x86/mm/pgtable.c
arch/xtensa/include/asm/pgalloc.h
include/asm-generic/pgalloc.h
include/linux/mm.h

index 889b00be469f263356848eea1bb5ce488b350d25..ff51f4a5494d70a32db3bf73319a4bc42d60ed47 100644 (file)
@@ -54,9 +54,9 @@ Hugetlb-specific helpers:
 Support of split page table lock by an architecture
 ===================================================
 
-There's no need in special enabling of PTE split page table lock:
-everything required is done by pgtable_page_ctor() and pgtable_page_dtor(),
-which must be called on PTE table allocation / freeing.
+There's no need in special enabling of PTE split page table lock: everything
+required is done by pgtable_pte_page_ctor() and pgtable_pte_page_dtor(), which
+must be called on PTE table allocation / freeing.
 
 Make sure the architecture doesn't use slab allocator for page table
 allocation: slab uses page->slab_cache for its pages.
@@ -74,7 +74,7 @@ paths: i.e X86_PAE preallocate few PMDs on pgd_alloc().
 
 With everything in place you can set CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK.
 
-NOTE: pgtable_page_ctor() and pgtable_pmd_page_ctor() can fail -- it must
+NOTE: pgtable_pte_page_ctor() and pgtable_pmd_page_ctor() can fail -- it must
 be handled properly.
 
 page->ptl
@@ -94,7 +94,7 @@ trick:
    split lock with enabled DEBUG_SPINLOCK or DEBUG_LOCK_ALLOC, but costs
    one more cache line for indirect access;
 
-The spinlock_t allocated in pgtable_page_ctor() for PTE table and in
+The spinlock_t allocated in pgtable_pte_page_ctor() for PTE table and in
 pgtable_pmd_page_ctor() for PMD table.
 
 Please, never access page->ptl directly -- use appropriate helper.
index 4751f2251cd91cc2dd2fc5f9c047340f77727fc4..b747f2ec2928770e8e1a023841f3fc7e75975b04 100644 (file)
@@ -108,7 +108,7 @@ pte_alloc_one(struct mm_struct *mm)
                return 0;
        memzero((void *)pte_pg, PTRS_PER_PTE * sizeof(pte_t));
        page = virt_to_page(pte_pg);
-       if (!pgtable_page_ctor(page)) {
+       if (!pgtable_pte_page_ctor(page)) {
                __free_page(page);
                return 0;
        }
@@ -123,7 +123,7 @@ static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
 
 static inline void pte_free(struct mm_struct *mm, pgtable_t ptep)
 {
-       pgtable_page_dtor(virt_to_page(ptep));
+       pgtable_pte_page_dtor(virt_to_page(ptep));
        free_pages((unsigned long)ptep, __get_order_pte());
 }
 
index b75ea15b85c021a6cfde92d72bb3c02d30365767..669474add486127f0a60a251404d4ad6d49d8d91 100644 (file)
@@ -44,7 +44,7 @@ static inline void __tlb_remove_table(void *_table)
 static inline void
 __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, unsigned long addr)
 {
-       pgtable_page_dtor(pte);
+       pgtable_pte_page_dtor(pte);
 
 #ifndef CONFIG_ARM_LPAE
        /*
index 25da9b2d96108e4e967dc73057cb19d65cc90d44..48c2888297dd9348d9bf192499764ea7c88bfdb4 100644 (file)
@@ -731,7 +731,7 @@ static void *__init late_alloc(unsigned long sz)
 {
        void *ptr = (void *)__get_free_pages(GFP_PGTABLE_KERNEL, get_order(sz));
 
-       if (!ptr || !pgtable_page_ctor(virt_to_page(ptr)))
+       if (!ptr || !pgtable_pte_page_ctor(virt_to_page(ptr)))
                BUG();
        return ptr;
 }
index a95d1fcb7e219472be4356b36432b8624d816b37..b76df828e6b73d1faadc15b1cf921dffd14c7f67 100644 (file)
@@ -44,7 +44,7 @@ static inline void tlb_flush(struct mmu_gather *tlb)
 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte,
                                  unsigned long addr)
 {
-       pgtable_page_dtor(pte);
+       pgtable_pte_page_dtor(pte);
        tlb_remove_table(tlb, pte);
 }
 
index 53dc6f24cfb72e66e6b3f77bccad4dce435c6c4b..60c929f3683b967e9531db22665c5a850ecccda1 100644 (file)
@@ -384,7 +384,7 @@ static phys_addr_t pgd_pgtable_alloc(int shift)
         * folded, and if so pgtable_pmd_page_ctor() becomes nop.
         */
        if (shift == PAGE_SHIFT)
-               BUG_ON(!pgtable_page_ctor(phys_to_page(pa)));
+               BUG_ON(!pgtable_pte_page_ctor(phys_to_page(pa)));
        else if (shift == PMD_SHIFT)
                BUG_ON(!pgtable_pmd_page_ctor(phys_to_page(pa)));
 
index d089113fe41f71762f58d34e0935daa562e21d09..c7c1ed27e34804f16c30f5be0393afddb15c37a2 100644 (file)
@@ -71,7 +71,7 @@ static inline pgd_t *pgd_alloc(struct mm_struct *mm)
 
 #define __pte_free_tlb(tlb, pte, address)              \
 do {                                                   \
-       pgtable_page_dtor(pte);                         \
+       pgtable_pte_page_dtor(pte);                     \
        tlb_remove_page(tlb, pte);                      \
 } while (0)
 
index 5a6e79e7926d4708b6e44c729be19f71fdacc078..cc9be514a676a5016dc4e0a05517d3c70727211c 100644 (file)
@@ -94,7 +94,7 @@ static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
 
 #define __pte_free_tlb(tlb, pte, addr)         \
 do {                                           \
-       pgtable_page_dtor((pte));               \
+       pgtable_pte_page_dtor((pte));           \
        tlb_remove_page((tlb), (pte));          \
 } while (0)
 
index 4399d712f6db72e3f0194b690720a456c4c6a7fc..b34d44d666a4427de750215bf919df19fd7159e5 100644 (file)
@@ -41,7 +41,7 @@ extern inline pmd_t *pmd_alloc_kernel(pgd_t *pgd, unsigned long address)
 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t page,
                                  unsigned long address)
 {
-       pgtable_page_dtor(page);
+       pgtable_pte_page_dtor(page);
        __free_page(page);
 }
 
@@ -54,7 +54,7 @@ static inline struct page *pte_alloc_one(struct mm_struct *mm)
 
        if (!page)
                return NULL;
-       if (!pgtable_page_ctor(page)) {
+       if (!pgtable_pte_page_ctor(page)) {
                __free_page(page);
                return NULL;
        }
@@ -73,7 +73,7 @@ static inline struct page *pte_alloc_one(struct mm_struct *mm)
 
 static inline void pte_free(struct mm_struct *mm, struct page *page)
 {
-       pgtable_page_dtor(page);
+       pgtable_pte_page_dtor(page);
        __free_page(page);
 }
 
index d04d9ba9b976744a379c03955d0534fbb21db0e4..acab315c851f3bcfa75766b362926cbefdb8cebb 100644 (file)
@@ -36,7 +36,7 @@ static inline pgtable_t pte_alloc_one(struct mm_struct *mm)
        page = alloc_pages(GFP_KERNEL|__GFP_ZERO, 0);
        if(!page)
                return NULL;
-       if (!pgtable_page_ctor(page)) {
+       if (!pgtable_pte_page_ctor(page)) {
                __free_page(page);
                return NULL;
        }
@@ -51,7 +51,7 @@ static inline pgtable_t pte_alloc_one(struct mm_struct *mm)
 
 static inline void pte_free(struct mm_struct *mm, pgtable_t page)
 {
-       pgtable_page_dtor(page);
+       pgtable_pte_page_dtor(page);
        cache_page(kmap(page));
        kunmap(page);
        __free_page(page);
@@ -60,7 +60,7 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t page)
 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t page,
                                  unsigned long address)
 {
-       pgtable_page_dtor(page);
+       pgtable_pte_page_dtor(page);
        cache_page(kmap(page));
        kunmap(page);
        __free_page(page);
index 1a8ddbd0d23c6a2d07c9d1f42bee1f146de3fb06..856121122b91a2145f5ff64d51c9d6ac2e41cc0f 100644 (file)
@@ -21,7 +21,7 @@ extern const char bad_pmd_string[];
 
 #define __pte_free_tlb(tlb,pte,addr)                   \
 do {                                                   \
-       pgtable_page_dtor(pte);                         \
+       pgtable_pte_page_dtor(pte);                     \
        tlb_remove_page((tlb), pte);                    \
 } while (0)
 
index aa73cb187a077e07a30d365e23f84123e69e3744..166842337eb2c1155f479f0157553a440c21a701 100644 (file)
@@ -54,7 +54,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
 
 #define __pte_free_tlb(tlb,pte,address)                        \
 do {                                                   \
-       pgtable_page_dtor(pte);                         \
+       pgtable_pte_page_dtor(pte);                     \
        tlb_remove_page((tlb), pte);                    \
 } while (0)
 
index 750d18d5980bb0f4a427fecbef26e33d6d7ff961..0b146d773c85d7dd6c4f09f90d0140f8c204ac82 100644 (file)
@@ -41,7 +41,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
 
 #define __pte_free_tlb(tlb, pte, addr)                         \
        do {                                                    \
-               pgtable_page_dtor(pte);                         \
+               pgtable_pte_page_dtor(pte);                     \
                tlb_remove_page((tlb), (pte));                  \
        } while (0)
 
index 787c1b9d2f6d6eb05ad4fcf4157d0753261765da..da12a4c38c4b5ebf30f1e47b89dec793ac399f1b 100644 (file)
@@ -75,7 +75,7 @@ static inline struct page *pte_alloc_one(struct mm_struct *mm)
        if (!pte)
                return NULL;
        clear_page(page_address(pte));
-       if (!pgtable_page_ctor(pte)) {
+       if (!pgtable_pte_page_ctor(pte)) {
                __free_page(pte);
                return NULL;
        }
@@ -89,13 +89,13 @@ static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
 
 static inline void pte_free(struct mm_struct *mm, struct page *pte)
 {
-       pgtable_page_dtor(pte);
+       pgtable_pte_page_dtor(pte);
        __free_page(pte);
 }
 
 #define __pte_free_tlb(tlb, pte, addr) \
 do {                                   \
-       pgtable_page_dtor(pte);         \
+       pgtable_pte_page_dtor(pte);     \
        tlb_remove_page((tlb), (pte));  \
 } while (0)
 
index a7b05214760ce3c538f4f8621bbd2325199a1bc9..ee4bd6d3860211bbcdc39a12fb6a8bc7b931f90f 100644 (file)
@@ -25,7 +25,7 @@ void pte_frag_destroy(void *pte_frag)
        count = ((unsigned long)pte_frag & ~PAGE_MASK) >> PTE_FRAG_SIZE_SHIFT;
        /* We allow PTE_FRAG_NR fragments from a PTE page */
        if (atomic_sub_and_test(PTE_FRAG_NR - count, &page->pt_frag_refcount)) {
-               pgtable_page_dtor(page);
+               pgtable_pte_page_dtor(page);
                __free_page(page);
        }
 }
@@ -61,7 +61,7 @@ static pte_t *__alloc_for_ptecache(struct mm_struct *mm, int kernel)
                page = alloc_page(PGALLOC_GFP | __GFP_ACCOUNT);
                if (!page)
                        return NULL;
-               if (!pgtable_page_ctor(page)) {
+               if (!pgtable_pte_page_ctor(page)) {
                        __free_page(page);
                        return NULL;
                }
@@ -113,7 +113,7 @@ void pte_fragment_free(unsigned long *table, int kernel)
        BUG_ON(atomic_read(&page->pt_frag_refcount) <= 0);
        if (atomic_dec_and_test(&page->pt_frag_refcount)) {
                if (!kernel)
-                       pgtable_page_dtor(page);
+                       pgtable_pte_page_dtor(page);
                __free_page(page);
        }
 }
index f66a00d8cb19f1bf0d1f362694351e5385e1f2be..d59ea92285ec2b36ba90abacce6d107415f6ef80 100644 (file)
@@ -78,7 +78,7 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
 
 #define __pte_free_tlb(tlb, pte, buf)   \
 do {                                    \
-       pgtable_page_dtor(pte);         \
+       pgtable_pte_page_dtor(pte);     \
        tlb_remove_page((tlb), pte);    \
 } while (0)
 
index 54fcdf66ae967c4546bb6c39933de43ac164150a..3dd253f81a7715f196d5d37899c981f8d87e0dd4 100644 (file)
@@ -210,7 +210,7 @@ unsigned long *page_table_alloc(struct mm_struct *mm)
        page = alloc_page(GFP_KERNEL);
        if (!page)
                return NULL;
-       if (!pgtable_page_ctor(page)) {
+       if (!pgtable_pte_page_ctor(page)) {
                __free_page(page);
                return NULL;
        }
@@ -256,7 +256,7 @@ void page_table_free(struct mm_struct *mm, unsigned long *table)
                atomic_xor_bits(&page->_refcount, 3U << 24);
        }
 
-       pgtable_page_dtor(page);
+       pgtable_pte_page_dtor(page);
        __free_page(page);
 }
 
@@ -308,7 +308,7 @@ void __tlb_remove_table(void *_table)
        case 3:         /* 4K page table with pgstes */
                if (mask & 3)
                        atomic_xor_bits(&page->_refcount, 3 << 24);
-               pgtable_page_dtor(page);
+               pgtable_pte_page_dtor(page);
                __free_page(page);
                break;
        }
index 8c6341a4d8072984645b7e73d3091aed5649417a..22d968bfe9bb689af8c9034ae458a6d83bf8cb7f 100644 (file)
@@ -29,7 +29,7 @@ static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
 
 #define __pte_free_tlb(tlb,pte,addr)                   \
 do {                                                   \
-       pgtable_page_dtor(pte);                         \
+       pgtable_pte_page_dtor(pte);                     \
        tlb_remove_page((tlb), (pte));                  \
 } while (0)
 
index 4b099dd7a7671566054c3d2c2c51a0ddc7da2b76..e6d91819da92119b95af9739672e9a3abbc5dfde 100644 (file)
@@ -2903,7 +2903,7 @@ pgtable_t pte_alloc_one(struct mm_struct *mm)
        struct page *page = alloc_page(GFP_KERNEL | __GFP_ZERO);
        if (!page)
                return NULL;
-       if (!pgtable_page_ctor(page)) {
+       if (!pgtable_pte_page_ctor(page)) {
                free_unref_page(page);
                return NULL;
        }
@@ -2919,7 +2919,7 @@ static void __pte_free(pgtable_t pte)
 {
        struct page *page = virt_to_page(pte);
 
-       pgtable_page_dtor(page);
+       pgtable_pte_page_dtor(page);
        __free_page(page);
 }
 
index aaebbc00d26236c01688ebc50dde58fb2921ef24..cc3ad64479ac3478b9fab46e316f32b649f8d788 100644 (file)
@@ -378,7 +378,7 @@ pgtable_t pte_alloc_one(struct mm_struct *mm)
        if ((pte = (unsigned long)pte_alloc_one_kernel(mm)) == 0)
                return NULL;
        page = pfn_to_page(__nocache_pa(pte) >> PAGE_SHIFT);
-       if (!pgtable_page_ctor(page)) {
+       if (!pgtable_pte_page_ctor(page)) {
                __free_page(page);
                return NULL;
        }
@@ -389,7 +389,7 @@ void pte_free(struct mm_struct *mm, pgtable_t pte)
 {
        unsigned long p;
 
-       pgtable_page_dtor(pte);
+       pgtable_pte_page_dtor(pte);
        p = (unsigned long)page_address(pte);   /* Cached address (for test) */
        if (p == 0)
                BUG();
index 446e0c0f4018d5a22f76e8d652a458143a0e532c..881e76da19384b0786bcd355293546c16acc3789 100644 (file)
@@ -29,7 +29,7 @@ extern void pgd_free(struct mm_struct *mm, pgd_t *pgd);
 
 #define __pte_free_tlb(tlb,pte, address)               \
 do {                                                   \
-       pgtable_page_dtor(pte);                         \
+       pgtable_pte_page_dtor(pte);                     \
        tlb_remove_page((tlb),(pte));                   \
 } while (0)
 
index 10d2356bfddda86b03cf00bf33b347cd7a003097..4663d8cc80ef961e97553cabd0df900f7b1d30fd 100644 (file)
@@ -15,7 +15,7 @@
 
 #define __pte_free_tlb(tlb, pte, addr)                         \
        do {                                                    \
-               pgtable_page_dtor(pte);                         \
+               pgtable_pte_page_dtor(pte);                     \
                tlb_remove_page((tlb), (pte));                  \
        } while (0)
 
index 463940faf52f4f7b1da9c4129f93b5414e373664..3e4b9035bb9a8d6eed1ac11e8e6bf680cac6a1e8 100644 (file)
@@ -45,7 +45,7 @@ early_param("userpte", setup_userpte);
 
 void ___pte_free_tlb(struct mmu_gather *tlb, struct page *pte)
 {
-       pgtable_page_dtor(pte);
+       pgtable_pte_page_dtor(pte);
        paravirt_release_pte(page_to_pfn(pte));
        paravirt_tlb_remove_table(tlb, pte);
 }
index dd744aa450fae4440584e76d908573e6c5458e38..1d38f0e755ba965d61caae06f6c0a89c277f6c20 100644 (file)
@@ -55,7 +55,7 @@ static inline pgtable_t pte_alloc_one(struct mm_struct *mm)
        if (!pte)
                return NULL;
        page = virt_to_page(pte);
-       if (!pgtable_page_ctor(page)) {
+       if (!pgtable_pte_page_ctor(page)) {
                __free_page(page);
                return NULL;
        }
@@ -69,7 +69,7 @@ static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
 
 static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
 {
-       pgtable_page_dtor(pte);
+       pgtable_pte_page_dtor(pte);
        __free_page(pte);
 }
 #define pmd_pgtable(pmd) pmd_page(pmd)
index 6f8cc06ee44e3ec4b04a739821f4ad53e16241bd..73f7421413cbd8a2298944b4f7959cee1e275426 100644 (file)
@@ -49,7 +49,7 @@ static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
  * @mm: the mm_struct of the current context
  * @gfp: GFP flags to use for the allocation
  *
- * Allocates a page and runs the pgtable_page_ctor().
+ * Allocates a page and runs the pgtable_pte_page_ctor().
  *
  * This function is intended for architectures that need
  * anything beyond simple page allocation or must have custom GFP flags.
@@ -63,7 +63,7 @@ static inline pgtable_t __pte_alloc_one(struct mm_struct *mm, gfp_t gfp)
        pte = alloc_page(gfp);
        if (!pte)
                return NULL;
-       if (!pgtable_page_ctor(pte)) {
+       if (!pgtable_pte_page_ctor(pte)) {
                __free_page(pte);
                return NULL;
        }
@@ -76,7 +76,7 @@ static inline pgtable_t __pte_alloc_one(struct mm_struct *mm, gfp_t gfp)
  * pte_alloc_one - allocate a page for PTE-level user page table
  * @mm: the mm_struct of the current context
  *
- * Allocates a page and runs the pgtable_page_ctor().
+ * Allocates a page and runs the pgtable_pte_page_ctor().
  *
  * Return: `struct page` initialized as page table or %NULL on error
  */
@@ -98,7 +98,7 @@ static inline pgtable_t pte_alloc_one(struct mm_struct *mm)
  */
 static inline void pte_free(struct mm_struct *mm, struct page *pte_page)
 {
-       pgtable_page_dtor(pte_page);
+       pgtable_pte_page_dtor(pte_page);
        __free_page(pte_page);
 }
 
index 294a67b94147083867208be03000c53f839c846f..cc292273e6ba0c0ac56d38d16aa1f87d65730393 100644 (file)
@@ -1949,7 +1949,7 @@ static inline void pgtable_init(void)
        pgtable_cache_init();
 }
 
-static inline bool pgtable_page_ctor(struct page *page)
+static inline bool pgtable_pte_page_ctor(struct page *page)
 {
        if (!ptlock_init(page))
                return false;
@@ -1958,7 +1958,7 @@ static inline bool pgtable_page_ctor(struct page *page)
        return true;
 }
 
-static inline void pgtable_page_dtor(struct page *page)
+static inline void pgtable_pte_page_dtor(struct page *page)
 {
        ptlock_free(page);
        __ClearPageTable(page);