diff for duplicates of <20200308105444.GE13982@linux.ibm.com> diff --git a/a/1.txt b/N1/1.txt index 786f7aa..2ca831a 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -83,8 +83,8 @@ index 2781ebf6add4..876d1528c2cf 100644 -static inline int hash__pgd_bad(pgd_t pgd) +static inline int hash__p4d_bad(p4d_t p4d) { -- return (pgd_val(pgd) = 0); -+ return (p4d_val(p4d) = 0); +- return (pgd_val(pgd) == 0); ++ return (p4d_val(p4d) == 0); } #ifdef CONFIG_STRICT_KERNEL_RWX extern void hash__mark_rodata_ro(void); @@ -311,11 +311,11 @@ index c40ec32b8194..81b1c54e3cf1 100644 */ -#define pgd_none(pgd) (!pgd_val(pgd)) --#define pgd_bad(pgd) (pgd_val(pgd) = 0) +-#define pgd_bad(pgd) (pgd_val(pgd) == 0) -#define pgd_present(pgd) (pgd_val(pgd) != 0) -#define pgd_page_vaddr(pgd) (pgd_val(pgd) & ~PGD_MASKED_BITS) +#define p4d_none(p4d) (!p4d_val(p4d)) -+#define p4d_bad(p4d) (p4d_val(p4d) = 0) ++#define p4d_bad(p4d) (p4d_val(p4d) == 0) +#define p4d_present(p4d) (p4d_val(p4d) != 0) +#define p4d_page_vaddr(p4d) (p4d_val(p4d) & ~P4D_MASKED_BITS) @@ -564,7 +564,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 } - pudp = pud_offset(pgdp, ea); + pudp = pud_offset(p4dp, ea); - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { ptep = (pte_t *)pudp; goto set_the_pte; @@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa, @@ -584,7 +584,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 + pudp = pud_alloc(&init_mm, p4dp, ea); if (!pudp) return -ENOMEM; - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { @@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end, { unsigned long idx; @@ -675,7 +675,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + p4 = p4d_offset(pg, addr); #ifdef CONFIG_PPC_BOOK3S_64 - if (pshift = PGDIR_SHIFT) + if (pshift == PGDIR_SHIFT) /* 16GB huge page */ - return (pte_t *) pg; + return (pte_t *) p4; @@ -692,7 +692,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + pu = pud_alloc(mm, p4, addr); if (!pu) return NULL; - if (pshift = PUD_SHIFT) + if (pshift == PUD_SHIFT) @@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz #else if (pshift >= PGDIR_SHIFT) { @@ -1050,3 +1050,8 @@ index e8c84d265602..0e1cc7275566 100644 printf("No valid PUD\n"); -- 2.25.1 + +_______________________________________________ +kvmarm mailing list +kvmarm@lists.cs.columbia.edu +https://lists.cs.columbia.edu/mailman/listinfo/kvmarm diff --git a/a/content_digest b/N1/content_digest index 6483582..53c1f0a 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -3,7 +3,7 @@ "ref\020200306200016.6f3865ada0daa68b645fe5d7@linux-foundation.org\0" "From\0Mike Rapoport <rppt@linux.ibm.com>\0" "Subject\0Re: [PATCH v3 07/14] powerpc/32: drop get_pteptr()\0" - "Date\0Sun, 08 Mar 2020 10:54:44 +0000\0" + "Date\0Sun, 8 Mar 2020 12:54:44 +0200\0" "To\0Andrew Morton <akpm@linux-foundation.org>\0" "Cc\0Rich Felker <dalias@libc.org>" linux-ia64@vger.kernel.org @@ -126,8 +126,8 @@ "-static inline int hash__pgd_bad(pgd_t pgd)\n" "+static inline int hash__p4d_bad(p4d_t p4d)\n" " {\n" - "-\treturn (pgd_val(pgd) = 0);\n" - "+\treturn (p4d_val(p4d) = 0);\n" + "-\treturn (pgd_val(pgd) == 0);\n" + "+\treturn (p4d_val(p4d) == 0);\n" " }\n" " #ifdef CONFIG_STRICT_KERNEL_RWX\n" " extern void hash__mark_rodata_ro(void);\n" @@ -354,11 +354,11 @@ " */\n" " \n" "-#define pgd_none(pgd)\t\t(!pgd_val(pgd))\n" - "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) = 0)\n" + "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) == 0)\n" "-#define pgd_present(pgd)\t(pgd_val(pgd) != 0)\n" "-#define pgd_page_vaddr(pgd)\t(pgd_val(pgd) & ~PGD_MASKED_BITS)\n" "+#define p4d_none(p4d)\t\t(!p4d_val(p4d))\n" - "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) = 0)\n" + "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) == 0)\n" "+#define p4d_present(p4d)\t(p4d_val(p4d) != 0)\n" "+#define p4d_page_vaddr(p4d)\t(p4d_val(p4d) & ~P4D_MASKED_BITS)\n" " \n" @@ -607,7 +607,7 @@ " \t}\n" "-\tpudp = pud_offset(pgdp, ea);\n" "+\tpudp = pud_offset(p4dp, ea);\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" " \t\tptep = (pte_t *)pudp;\n" " \t\tgoto set_the_pte;\n" "@@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa,\n" @@ -627,7 +627,7 @@ "+\tpudp = pud_alloc(&init_mm, p4dp, ea);\n" " \tif (!pudp)\n" " \t\treturn -ENOMEM;\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" "@@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end,\n" " {\n" " \tunsigned long idx;\n" @@ -718,7 +718,7 @@ "+\tp4 = p4d_offset(pg, addr);\n" " \n" " #ifdef CONFIG_PPC_BOOK3S_64\n" - " \tif (pshift = PGDIR_SHIFT)\n" + " \tif (pshift == PGDIR_SHIFT)\n" " \t\t/* 16GB huge page */\n" "-\t\treturn (pte_t *) pg;\n" "+\t\treturn (pte_t *) p4;\n" @@ -735,7 +735,7 @@ "+\t\tpu = pud_alloc(mm, p4, addr);\n" " \t\tif (!pu)\n" " \t\t\treturn NULL;\n" - " \t\tif (pshift = PUD_SHIFT)\n" + " \t\tif (pshift == PUD_SHIFT)\n" "@@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz\n" " #else\n" " \tif (pshift >= PGDIR_SHIFT) {\n" @@ -1092,6 +1092,11 @@ " \tif (pud_none(*pudp)) {\n" " \t\tprintf(\"No valid PUD\\n\");\n" "-- \n" - 2.25.1 + "2.25.1\n" + "\n" + "_______________________________________________\n" + "kvmarm mailing list\n" + "kvmarm@lists.cs.columbia.edu\n" + https://lists.cs.columbia.edu/mailman/listinfo/kvmarm -e30d2ac7f438b2e0585c71db9c7ad4db182f5e18ef94a7fec3c661d022a15b71 +ce6ace669d83a0e4c8c2c364881062425bcbedd1bd306dd1f543cfa3033d3fc1
diff --git a/a/1.txt b/N2/1.txt index 786f7aa..5249058 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -83,8 +83,8 @@ index 2781ebf6add4..876d1528c2cf 100644 -static inline int hash__pgd_bad(pgd_t pgd) +static inline int hash__p4d_bad(p4d_t p4d) { -- return (pgd_val(pgd) = 0); -+ return (p4d_val(p4d) = 0); +- return (pgd_val(pgd) == 0); ++ return (p4d_val(p4d) == 0); } #ifdef CONFIG_STRICT_KERNEL_RWX extern void hash__mark_rodata_ro(void); @@ -311,11 +311,11 @@ index c40ec32b8194..81b1c54e3cf1 100644 */ -#define pgd_none(pgd) (!pgd_val(pgd)) --#define pgd_bad(pgd) (pgd_val(pgd) = 0) +-#define pgd_bad(pgd) (pgd_val(pgd) == 0) -#define pgd_present(pgd) (pgd_val(pgd) != 0) -#define pgd_page_vaddr(pgd) (pgd_val(pgd) & ~PGD_MASKED_BITS) +#define p4d_none(p4d) (!p4d_val(p4d)) -+#define p4d_bad(p4d) (p4d_val(p4d) = 0) ++#define p4d_bad(p4d) (p4d_val(p4d) == 0) +#define p4d_present(p4d) (p4d_val(p4d) != 0) +#define p4d_page_vaddr(p4d) (p4d_val(p4d) & ~P4D_MASKED_BITS) @@ -564,7 +564,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 } - pudp = pud_offset(pgdp, ea); + pudp = pud_offset(p4dp, ea); - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { ptep = (pte_t *)pudp; goto set_the_pte; @@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa, @@ -584,7 +584,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 + pudp = pud_alloc(&init_mm, p4dp, ea); if (!pudp) return -ENOMEM; - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { @@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end, { unsigned long idx; @@ -675,7 +675,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + p4 = p4d_offset(pg, addr); #ifdef CONFIG_PPC_BOOK3S_64 - if (pshift = PGDIR_SHIFT) + if (pshift == PGDIR_SHIFT) /* 16GB huge page */ - return (pte_t *) pg; + return (pte_t *) p4; @@ -692,7 +692,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + pu = pud_alloc(mm, p4, addr); if (!pu) return NULL; - if (pshift = PUD_SHIFT) + if (pshift == PUD_SHIFT) @@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz #else if (pshift >= PGDIR_SHIFT) { diff --git a/a/content_digest b/N2/content_digest index 6483582..ba596aa 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -3,42 +3,28 @@ "ref\020200306200016.6f3865ada0daa68b645fe5d7@linux-foundation.org\0" "From\0Mike Rapoport <rppt@linux.ibm.com>\0" "Subject\0Re: [PATCH v3 07/14] powerpc/32: drop get_pteptr()\0" - "Date\0Sun, 08 Mar 2020 10:54:44 +0000\0" + "Date\0Sun, 8 Mar 2020 12:54:44 +0200\0" "To\0Andrew Morton <akpm@linux-foundation.org>\0" - "Cc\0Rich Felker <dalias@libc.org>" - linux-ia64@vger.kernel.org - Geert Uytterhoeven <geert+renesas@glider.be> - linux-sh@vger.kernel.org + "Cc\0Mike Rapoport <rppt@kernel.org>" + linux-kernel@vger.kernel.org + Arnd Bergmann <arnd@arndb.de> Benjamin Herrenschmidt <benh@kernel.crashing.org> - linux-mm@kvack.org - Paul Mackerras <paulus@samba.org> - linux-hexagon@vger.kernel.org - Will Deacon <will@kernel.org> - kvmarm@lists.cs.columbia.edu - Jonas Bonn <jonas@southpole.se> - linux-arch@vger.kernel.org Brian Cain <bcain@codeaurora.org> - Marc Zyngier <maz@kernel.org> - Russell King <linux@armlinux.org.uk> - Ley Foon Tan <ley.foon.tan@intel.com> Catalin Marinas <catalin.marinas@arm.com> - uclinux-h8-devel@lists.sourceforge.jp + Christophe Leroy <christophe.leroy@c-s.fr> Fenghua Yu <fenghua.yu@intel.com> - Arnd Bergmann <arnd@arndb.de> - kvm-ppc@vger.kernel.org - Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> - openrisc@lists.librecores.org - Stafford Horne <shorne@gmail.com> + Geert Uytterhoeven <geert+renesas@glider.be> Guan Xuetao <gxt@pku.edu.cn> - linux-arm-kernel@lists.infradead.org - Christophe Leroy <christophe.leroy@c-s.fr> - Tony Luck <tony.luck@intel.com> - Yoshinori Sato <ysato@users.sourceforge.jp> - linux-kernel@vger.kernel.org + James Morse <james.morse@arm.com> + Jonas Bonn <jonas@southpole.se> + Julien Thierry <julien.thierry.kdev@gmail.com> + Ley Foon Tan <ley.foon.tan@intel.com> + Marc Zyngier <maz@kernel.org> Michael Ellerman <mpe@ellerman.id.au> - nios2-dev@lists.rocketboards.org - linuxppc-dev@lists.ozlabs.org - " Mike Rapoport <rppt@kernel.org>\0" + Paul Mackerras <paulus@samba.org> + Rich Felker <dalias@libc.org> + Russell King <linux@armlinux.org.uk> + " Stafford Horne <shorne@gmail.com>St\0" "\00:1\0" "b\0" "On Fri, Mar 06, 2020 at 08:00:16PM -0800, Andrew Morton wrote:\n" @@ -126,8 +112,8 @@ "-static inline int hash__pgd_bad(pgd_t pgd)\n" "+static inline int hash__p4d_bad(p4d_t p4d)\n" " {\n" - "-\treturn (pgd_val(pgd) = 0);\n" - "+\treturn (p4d_val(p4d) = 0);\n" + "-\treturn (pgd_val(pgd) == 0);\n" + "+\treturn (p4d_val(p4d) == 0);\n" " }\n" " #ifdef CONFIG_STRICT_KERNEL_RWX\n" " extern void hash__mark_rodata_ro(void);\n" @@ -354,11 +340,11 @@ " */\n" " \n" "-#define pgd_none(pgd)\t\t(!pgd_val(pgd))\n" - "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) = 0)\n" + "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) == 0)\n" "-#define pgd_present(pgd)\t(pgd_val(pgd) != 0)\n" "-#define pgd_page_vaddr(pgd)\t(pgd_val(pgd) & ~PGD_MASKED_BITS)\n" "+#define p4d_none(p4d)\t\t(!p4d_val(p4d))\n" - "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) = 0)\n" + "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) == 0)\n" "+#define p4d_present(p4d)\t(p4d_val(p4d) != 0)\n" "+#define p4d_page_vaddr(p4d)\t(p4d_val(p4d) & ~P4D_MASKED_BITS)\n" " \n" @@ -607,7 +593,7 @@ " \t}\n" "-\tpudp = pud_offset(pgdp, ea);\n" "+\tpudp = pud_offset(p4dp, ea);\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" " \t\tptep = (pte_t *)pudp;\n" " \t\tgoto set_the_pte;\n" "@@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa,\n" @@ -627,7 +613,7 @@ "+\tpudp = pud_alloc(&init_mm, p4dp, ea);\n" " \tif (!pudp)\n" " \t\treturn -ENOMEM;\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" "@@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end,\n" " {\n" " \tunsigned long idx;\n" @@ -718,7 +704,7 @@ "+\tp4 = p4d_offset(pg, addr);\n" " \n" " #ifdef CONFIG_PPC_BOOK3S_64\n" - " \tif (pshift = PGDIR_SHIFT)\n" + " \tif (pshift == PGDIR_SHIFT)\n" " \t\t/* 16GB huge page */\n" "-\t\treturn (pte_t *) pg;\n" "+\t\treturn (pte_t *) p4;\n" @@ -735,7 +721,7 @@ "+\t\tpu = pud_alloc(mm, p4, addr);\n" " \t\tif (!pu)\n" " \t\t\treturn NULL;\n" - " \t\tif (pshift = PUD_SHIFT)\n" + " \t\tif (pshift == PUD_SHIFT)\n" "@@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz\n" " #else\n" " \tif (pshift >= PGDIR_SHIFT) {\n" @@ -1094,4 +1080,4 @@ "-- \n" 2.25.1 -e30d2ac7f438b2e0585c71db9c7ad4db182f5e18ef94a7fec3c661d022a15b71 +5d110411df9d144d5a08d4f66b8cdb31e9412f4f687cb3ebb990797d577e207e
diff --git a/a/1.txt b/N3/1.txt index 786f7aa..c0e5f4b 100644 --- a/a/1.txt +++ b/N3/1.txt @@ -18,7 +18,7 @@ On Fri, Mar 06, 2020 at 08:00:16PM -0800, Andrew Morton wrote: > powerpc-32-drop-get_pteptr.patch and > powerpc-add-support-for-folded-p4d-page-tables.patch (and > powerpc-add-support-for-folded-p4d-page-tables-fix.patch)? - + This is the powerpc-add-support-for-folded-p4d-page-tables.patch on top of current powerpc/next. The powerpc-32-drop-get_pteptr.patch is already there and I've folded powerpc-add-support-for-folded-p4d-page-tables-fix.patch @@ -67,24 +67,24 @@ index 7549393c4c43..6052b72216a6 100644 @@ -2,7 +2,6 @@ #ifndef _ASM_POWERPC_BOOK3S_32_PGTABLE_H #define _ASM_POWERPC_BOOK3S_32_PGTABLE_H - + -#define __ARCH_USE_5LEVEL_HACK #include <asm-generic/pgtable-nopmd.h> - + #include <asm/book3s/32/hash.h> diff --git a/arch/powerpc/include/asm/book3s/64/hash.h b/arch/powerpc/include/asm/book3s/64/hash.h index 2781ebf6add4..876d1528c2cf 100644 --- a/arch/powerpc/include/asm/book3s/64/hash.h +++ b/arch/powerpc/include/asm/book3s/64/hash.h @@ -134,9 +134,9 @@ static inline int get_region_id(unsigned long ea) - + #define hash__pmd_bad(pmd) (pmd_val(pmd) & H_PMD_BAD_BITS) #define hash__pud_bad(pud) (pud_val(pud) & H_PUD_BAD_BITS) -static inline int hash__pgd_bad(pgd_t pgd) +static inline int hash__p4d_bad(p4d_t p4d) { -- return (pgd_val(pgd) = 0); -+ return (p4d_val(p4d) = 0); +- return (pgd_val(pgd) == 0); ++ return (p4d_val(p4d) == 0); } #ifdef CONFIG_STRICT_KERNEL_RWX extern void hash__mark_rodata_ro(void); @@ -95,14 +95,14 @@ index a41e91bd0580..69c5b051734f 100644 @@ -85,9 +85,9 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd) kmem_cache_free(PGT_CACHE(PGD_INDEX_SIZE), pgd); } - + -static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud) +static inline void p4d_populate(struct mm_struct *mm, p4d_t *pgd, pud_t *pud) { - *pgd = __pgd(__pgtable_ptr_val(pud) | PGD_VAL_BITS); + *pgd = __p4d(__pgtable_ptr_val(pud) | PGD_VAL_BITS); } - + static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr) diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h index 201a69e6a355..fa60e8594b9f 100644 @@ -111,10 +111,10 @@ index 201a69e6a355..fa60e8594b9f 100644 @@ -2,7 +2,7 @@ #ifndef _ASM_POWERPC_BOOK3S_64_PGTABLE_H_ #define _ASM_POWERPC_BOOK3S_64_PGTABLE_H_ - + -#include <asm-generic/5level-fixup.h> +#include <asm-generic/pgtable-nop4d.h> - + #ifndef __ASSEMBLY__ #include <linux/mmdebug.h> @@ -251,7 +251,7 @@ extern unsigned long __pmd_frag_size_shift; @@ -123,13 +123,13 @@ index 201a69e6a355..fa60e8594b9f 100644 /* Bits to mask out from a PGD to get to the PUD page */ -#define PGD_MASKED_BITS 0xc0000000000000ffUL +#define P4D_MASKED_BITS 0xc0000000000000ffUL - + /* * Used as an indicator for rcu callback functions @@ -949,54 +949,60 @@ static inline bool pud_access_permitted(pud_t pud, bool write) return pte_access_permitted(pud_pte(pud), write); } - + -#define pgd_write(pgd) pte_write(pgd_pte(pgd)) +#define __p4d_raw(x) ((p4d_t) { __pgd_raw(x) }) +static inline __be64 p4d_raw(p4d_t x) @@ -138,42 +138,42 @@ index 201a69e6a355..fa60e8594b9f 100644 +} + +#define p4d_write(p4d) pte_write(p4d_pte(p4d)) - + -static inline void pgd_clear(pgd_t *pgdp) +static inline void p4d_clear(p4d_t *p4dp) { - *pgdp = __pgd(0); + *p4dp = __p4d(0); } - + -static inline int pgd_none(pgd_t pgd) +static inline int p4d_none(p4d_t p4d) { - return !pgd_raw(pgd); + return !p4d_raw(p4d); } - + -static inline int pgd_present(pgd_t pgd) +static inline int p4d_present(p4d_t p4d) { - return !!(pgd_raw(pgd) & cpu_to_be64(_PAGE_PRESENT)); + return !!(p4d_raw(p4d) & cpu_to_be64(_PAGE_PRESENT)); } - + -static inline pte_t pgd_pte(pgd_t pgd) +static inline pte_t p4d_pte(p4d_t p4d) { - return __pte_raw(pgd_raw(pgd)); + return __pte_raw(p4d_raw(p4d)); } - + -static inline pgd_t pte_pgd(pte_t pte) +static inline p4d_t pte_p4d(pte_t pte) { - return __pgd_raw(pte_raw(pte)); + return __p4d_raw(pte_raw(pte)); } - + -static inline int pgd_bad(pgd_t pgd) +static inline int p4d_bad(p4d_t p4d) { @@ -183,7 +183,7 @@ index 201a69e6a355..fa60e8594b9f 100644 + return radix__p4d_bad(p4d); + return hash__p4d_bad(p4d); } - + -#define pgd_access_permitted pgd_access_permitted -static inline bool pgd_access_permitted(pgd_t pgd, bool write) +#define p4d_access_permitted p4d_access_permitted @@ -192,24 +192,24 @@ index 201a69e6a355..fa60e8594b9f 100644 - return pte_access_permitted(pgd_pte(pgd), write); + return pte_access_permitted(p4d_pte(p4d), write); } - + -extern struct page *pgd_page(pgd_t pgd); +extern struct page *p4d_page(p4d_t p4d); - + /* Pointers in the page table tree are physical addresses */ #define __pgtable_ptr_val(ptr) __pa(ptr) - + #define pmd_page_vaddr(pmd) __va(pmd_val(pmd) & ~PMD_MASKED_BITS) #define pud_page_vaddr(pud) __va(pud_val(pud) & ~PUD_MASKED_BITS) -#define pgd_page_vaddr(pgd) __va(pgd_val(pgd) & ~PGD_MASKED_BITS) +#define p4d_page_vaddr(p4d) __va(p4d_val(p4d) & ~P4D_MASKED_BITS) - + #define pgd_index(address) (((address) >> (PGDIR_SHIFT)) & (PTRS_PER_PGD - 1)) #define pud_index(address) (((address) >> (PUD_SHIFT)) & (PTRS_PER_PUD - 1)) @@ -1010,8 +1016,8 @@ extern struct page *pgd_page(pgd_t pgd); - + #define pgd_offset(mm, address) ((mm)->pgd + pgd_index(address)) - + -#define pud_offset(pgdp, addr) \ - (((pud_t *) pgd_page_vaddr(*(pgdp))) + pud_index(addr)) +#define pud_offset(p4dp, addr) \ @@ -220,7 +220,7 @@ index 201a69e6a355..fa60e8594b9f 100644 @@ -1368,11 +1374,11 @@ static inline bool pud_is_leaf(pud_t pud) return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE)); } - + -#define pgd_is_leaf pgd_is_leaf -#define pgd_leaf pgd_is_leaf -static inline bool pgd_is_leaf(pgd_t pgd) @@ -231,7 +231,7 @@ index 201a69e6a355..fa60e8594b9f 100644 - return !!(pgd_raw(pgd) & cpu_to_be64(_PAGE_PTE)); + return !!(p4d_raw(p4d) & cpu_to_be64(_PAGE_PTE)); } - + #endif /* __ASSEMBLY__ */ diff --git a/arch/powerpc/include/asm/book3s/64/radix.h b/arch/powerpc/include/asm/book3s/64/radix.h index d97db3ad9aae..9bca2ac64220 100644 @@ -243,20 +243,20 @@ index d97db3ad9aae..9bca2ac64220 100644 #define RADIX_PUD_BAD_BITS 0x60000000000000e0UL -#define RADIX_PGD_BAD_BITS 0x60000000000000e0UL +#define RADIX_P4D_BAD_BITS 0x60000000000000e0UL - + #define RADIX_PMD_SHIFT (PAGE_SHIFT + RADIX_PTE_INDEX_SIZE) #define RADIX_PUD_SHIFT (RADIX_PMD_SHIFT + RADIX_PMD_INDEX_SIZE) @@ -227,9 +227,9 @@ static inline int radix__pud_bad(pud_t pud) } - - + + -static inline int radix__pgd_bad(pgd_t pgd) +static inline int radix__p4d_bad(p4d_t p4d) { - return !!(pgd_val(pgd) & RADIX_PGD_BAD_BITS); + return !!(p4d_val(p4d) & RADIX_P4D_BAD_BITS); } - + #ifdef CONFIG_TRANSPARENT_HUGEPAGE diff --git a/arch/powerpc/include/asm/nohash/32/pgtable.h b/arch/powerpc/include/asm/nohash/32/pgtable.h index b04ba257fddb..3d0bc99dd520 100644 @@ -265,10 +265,10 @@ index b04ba257fddb..3d0bc99dd520 100644 @@ -2,7 +2,6 @@ #ifndef _ASM_POWERPC_NOHASH_32_PGTABLE_H #define _ASM_POWERPC_NOHASH_32_PGTABLE_H - + -#define __ARCH_USE_5LEVEL_HACK #include <asm-generic/pgtable-nopmd.h> - + #ifndef __ASSEMBLY__ diff --git a/arch/powerpc/include/asm/nohash/64/pgalloc.h b/arch/powerpc/include/asm/nohash/64/pgalloc.h index b9534a793293..668aee6017e7 100644 @@ -277,10 +277,10 @@ index b9534a793293..668aee6017e7 100644 @@ -15,7 +15,7 @@ struct vmemmap_backing { }; extern struct vmemmap_backing *vmemmap_list; - + -#define pgd_populate(MM, PGD, PUD) pgd_set(PGD, (unsigned long)PUD) +#define p4d_populate(MM, P4D, PUD) p4d_set(P4D, (unsigned long)PUD) - + static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr) { diff --git a/arch/powerpc/include/asm/nohash/64/pgtable-4k.h b/arch/powerpc/include/asm/nohash/64/pgtable-4k.h @@ -290,10 +290,10 @@ index c40ec32b8194..81b1c54e3cf1 100644 @@ -2,7 +2,7 @@ #ifndef _ASM_POWERPC_NOHASH_64_PGTABLE_4K_H #define _ASM_POWERPC_NOHASH_64_PGTABLE_4K_H - + -#include <asm-generic/5level-fixup.h> +#include <asm-generic/pgtable-nop4d.h> - + /* * Entries per page directory level. The PTE level must use a 64b record @@ -45,41 +45,41 @@ @@ -304,37 +304,37 @@ index c40ec32b8194..81b1c54e3cf1 100644 -#define PGD_MASKED_BITS 0 +/* Bits to mask out from a P4D to get to the PUD page */ +#define P4D_MASKED_BITS 0 - - + + /* * 4-level page tables related bits */ - + -#define pgd_none(pgd) (!pgd_val(pgd)) --#define pgd_bad(pgd) (pgd_val(pgd) = 0) +-#define pgd_bad(pgd) (pgd_val(pgd) == 0) -#define pgd_present(pgd) (pgd_val(pgd) != 0) -#define pgd_page_vaddr(pgd) (pgd_val(pgd) & ~PGD_MASKED_BITS) +#define p4d_none(p4d) (!p4d_val(p4d)) -+#define p4d_bad(p4d) (p4d_val(p4d) = 0) ++#define p4d_bad(p4d) (p4d_val(p4d) == 0) +#define p4d_present(p4d) (p4d_val(p4d) != 0) +#define p4d_page_vaddr(p4d) (p4d_val(p4d) & ~P4D_MASKED_BITS) - + #ifndef __ASSEMBLY__ - + -static inline void pgd_clear(pgd_t *pgdp) +static inline void p4d_clear(p4d_t *p4dp) { - *pgdp = __pgd(0); + *p4dp = __p4d(0); } - + -static inline pte_t pgd_pte(pgd_t pgd) +static inline pte_t p4d_pte(p4d_t p4d) { - return __pte(pgd_val(pgd)); + return __pte(p4d_val(p4d)); } - + -static inline pgd_t pte_pgd(pte_t pte) +static inline p4d_t pte_p4d(pte_t pte) { @@ -343,15 +343,15 @@ index c40ec32b8194..81b1c54e3cf1 100644 } -extern struct page *pgd_page(pgd_t pgd); +extern struct page *p4d_page(p4d_t p4d); - + #endif /* !__ASSEMBLY__ */ - + -#define pud_offset(pgdp, addr) \ - (((pud_t *) pgd_page_vaddr(*(pgdp))) + \ +#define pud_offset(p4dp, addr) \ + (((pud_t *) p4d_page_vaddr(*(p4dp))) + \ (((addr) >> PUD_SHIFT) & (PTRS_PER_PUD - 1))) - + #define pud_ERROR(e) \ diff --git a/arch/powerpc/include/asm/nohash/64/pgtable.h b/arch/powerpc/include/asm/nohash/64/pgtable.h index 9a33b8bd842d..b360f262b9c6 100644 @@ -363,14 +363,14 @@ index 9a33b8bd842d..b360f262b9c6 100644 #define pud_write(pud) pte_write(pud_pte(pud)) -#define pgd_write(pgd) pte_write(pgd_pte(pgd)) +#define p4d_write(pgd) pte_write(p4d_pte(p4d)) - + -static inline void pgd_set(pgd_t *pgdp, unsigned long val) +static inline void p4d_set(p4d_t *p4dp, unsigned long val) { - *pgdp = __pgd(val); + *p4dp = __p4d(val); } - + /* diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h index b80bfd41828d..8bc1e5c3c7be 100644 @@ -383,18 +383,18 @@ index b80bfd41828d..8bc1e5c3c7be 100644 - return pmd_offset(pud_offset(pgd_offset(mm, va), va), va); + return pmd_offset(pud_offset(p4d_offset(pgd_offset(mm, va), va), va), va); } - + static inline pmd_t *pmd_ptr_k(unsigned long va) { - return pmd_offset(pud_offset(pgd_offset_k(va), va), va); + return pmd_offset(pud_offset(p4d_offset(pgd_offset_k(va), va), va), va); } - + static inline pte_t *virt_to_kpte(unsigned long vaddr) @@ -156,9 +156,9 @@ static inline bool pud_is_leaf(pud_t pud) } #endif - + -#ifndef pgd_is_leaf -#define pgd_is_leaf pgd_is_leaf -static inline bool pgd_is_leaf(pgd_t pgd) @@ -410,11 +410,11 @@ index 1d75ed684b53..ea8a96038bb4 100644 +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c @@ -499,13 +499,14 @@ void kvmppc_free_pgtable_radix(struct kvm *kvm, pgd_t *pgd, unsigned int lpid) unsigned long ig; - + for (ig = 0; ig < PTRS_PER_PGD; ++ig, ++pgd) { + p4d_t *p4d = p4d_offset(pgd, 0); pud_t *pud; - + - if (!pgd_present(*pgd)) + if (!p4d_present(*p4d)) continue; @@ -425,7 +425,7 @@ index 1d75ed684b53..ea8a96038bb4 100644 + p4d_clear(p4d); } } - + @@ -566,6 +567,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte, unsigned long *rmapp, struct rmap_nested **n_rmap) { @@ -435,7 +435,7 @@ index 1d75ed684b53..ea8a96038bb4 100644 pmd_t *pmd, *new_pmd = NULL; pte_t *ptep, *new_ptep = NULL; @@ -573,9 +575,11 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte, - + /* Traverse the guest's 2nd-level tree, allocate new levels needed */ pgd = pgtable + pgd_index(gpa); + p4d = p4d_offset(pgd, gpa); @@ -447,9 +447,9 @@ index 1d75ed684b53..ea8a96038bb4 100644 + pud = pud_offset(p4d, gpa); else new_pud = pud_alloc_one(kvm->mm, gpa); - + @@ -596,13 +600,13 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte, - + /* Now traverse again under the lock and change the tree */ ret = -ENOMEM; - if (pgd_none(*pgd)) { @@ -464,7 +464,7 @@ index 1d75ed684b53..ea8a96038bb4 100644 + pud = pud_offset(p4d, gpa); if (pud_is_leaf(*pud)) { unsigned long hgpa = gpa & PUD_MASK; - + @@ -1219,7 +1223,8 @@ static ssize_t debugfs_radix_read(struct file *file, char __user *buf, unsigned long gpa; pgd_t *pgt; @@ -477,7 +477,7 @@ index 1d75ed684b53..ea8a96038bb4 100644 pte_t *ptep; @@ -1292,13 +1297,14 @@ static ssize_t debugfs_radix_read(struct file *file, char __user *buf, } - + pgdp = pgt + pgd_index(gpa); - pgd = READ_ONCE(*pgdp); - if (!(pgd_val(pgd) & _PAGE_PRESENT)) { @@ -488,7 +488,7 @@ index 1d75ed684b53..ea8a96038bb4 100644 + gpa = (gpa & P4D_MASK) + P4D_SIZE; continue; } - + - pudp = pud_offset(&pgd, gpa); + pudp = pud_offset(&p4d, gpa); pud = READ_ONCE(*pudp); @@ -504,11 +504,11 @@ index 3345f039a876..7a59f6863cec 100644 pud_t *pudp; + p4d_t *p4dp; pgd_t *pgdp; - + pgdp = pgd_offset_k(addr); if (unlikely(!pgdp)) return -EINVAL; - + - pudp = pud_offset(pgdp, addr); + p4dp = p4d_offset(pgdp, addr); + if (unlikely(!p4dp)) @@ -517,7 +517,7 @@ index 3345f039a876..7a59f6863cec 100644 + pudp = pud_offset(p4dp, addr); if (unlikely(!pudp)) return -EINVAL; - + diff --git a/arch/powerpc/mm/book3s64/hash_pgtable.c b/arch/powerpc/mm/book3s64/hash_pgtable.c index 64733b9cb20a..9cd15937e88a 100644 --- a/arch/powerpc/mm/book3s64/hash_pgtable.c @@ -552,7 +552,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 pud_t *pudp; pmd_t *pmdp; pte_t *ptep; - + pgdp = pgd_offset_k(ea); - if (pgd_none(*pgdp)) { + p4dp = p4d_offset(pgdp, ea); @@ -564,7 +564,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 } - pudp = pud_offset(pgdp, ea); + pudp = pud_offset(p4dp, ea); - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { ptep = (pte_t *)pudp; goto set_the_pte; @@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa, @@ -584,7 +584,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 + pudp = pud_alloc(&init_mm, p4dp, ea); if (!pudp) return -ENOMEM; - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { @@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end, { unsigned long idx; @@ -594,7 +594,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 pmd_t *pmdp; pte_t *ptep; @@ -185,7 +190,8 @@ void radix__change_memory_range(unsigned long start, unsigned long end, - + for (idx = start; idx < end; idx += PAGE_SIZE) { pgdp = pgd_offset_k(idx); - pudp = pud_alloc(&init_mm, pgdp, idx); @@ -608,30 +608,30 @@ index dd1bea45325c..fc3d0b0460b0 100644 pud_t *pud_base; pgd_t *pgd; + p4d_t *p4d; - + spin_lock(&init_mm.page_table_lock); - + @@ -854,15 +861,16 @@ static void __meminit remove_pagetable(unsigned long start, unsigned long end) next = pgd_addr_end(addr, end); - + pgd = pgd_offset_k(addr); - if (!pgd_present(*pgd)) + p4d = p4d_offset(pgd, addr); + if (!p4d_present(*p4d)) continue; - + - if (pgd_is_leaf(*pgd)) { - split_kernel_mapping(addr, end, PGDIR_SIZE, (pte_t *)pgd); + if (p4d_is_leaf(*p4d)) { + split_kernel_mapping(addr, end, P4D_SIZE, (pte_t *)p4d); continue; } - + - pud_base = (pud_t *)pgd_page_vaddr(*pgd); + pud_base = (pud_t *)p4d_page_vaddr(*p4d); remove_pud_table(pud_base, addr, next); } - + diff --git a/arch/powerpc/mm/book3s64/subpage_prot.c b/arch/powerpc/mm/book3s64/subpage_prot.c index 2ef24a53f4c9..25a0c044bd93 100644 --- a/arch/powerpc/mm/book3s64/subpage_prot.c @@ -645,7 +645,7 @@ index 2ef24a53f4c9..25a0c044bd93 100644 pmd_t *pmd; pte_t *pte; spinlock_t *ptl; - + pgd = pgd_offset(mm, addr); - if (pgd_none(*pgd)) + p4d = p4d_offset(pgd, addr); @@ -669,13 +669,13 @@ index 73d4873fc7f8..43d463f20fc3 100644 pmd_t *pm; hugepd_t *hpdp = NULL; @@ -121,20 +122,21 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz - + addr &= ~(sz-1); pg = pgd_offset(mm, addr); + p4 = p4d_offset(pg, addr); - + #ifdef CONFIG_PPC_BOOK3S_64 - if (pshift = PGDIR_SHIFT) + if (pshift == PGDIR_SHIFT) /* 16GB huge page */ - return (pte_t *) pg; + return (pte_t *) p4; @@ -692,7 +692,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + pu = pud_alloc(mm, p4, addr); if (!pu) return NULL; - if (pshift = PUD_SHIFT) + if (pshift == PUD_SHIFT) @@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz #else if (pshift >= PGDIR_SHIFT) { @@ -709,14 +709,14 @@ index 73d4873fc7f8..43d463f20fc3 100644 @@ -384,7 +386,7 @@ static void hugetlb_free_pmd_range(struct mmu_gather *tlb, pud_t *pud, mm_dec_nr_pmds(tlb->mm); } - + -static void hugetlb_free_pud_range(struct mmu_gather *tlb, pgd_t *pgd, +static void hugetlb_free_pud_range(struct mmu_gather *tlb, p4d_t *p4d, unsigned long addr, unsigned long end, unsigned long floor, unsigned long ceiling) { @@ -394,7 +396,7 @@ static void hugetlb_free_pud_range(struct mmu_gather *tlb, pgd_t *pgd, - + start = addr; do { - pud = pud_offset(pgd, addr); @@ -727,7 +727,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 @@ -429,8 +431,8 @@ static void hugetlb_free_pud_range(struct mmu_gather *tlb, pgd_t *pgd, if (end - 1 > ceiling - 1) return; - + - pud = pud_offset(pgd, start); - pgd_clear(pgd); + pud = pud_offset(p4d, start); @@ -741,7 +741,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 pgd_t *pgd; + p4d_t *p4d; unsigned long next; - + /* @@ -465,10 +468,11 @@ void hugetlb_free_pgd_range(struct mmu_gather *tlb, do { @@ -760,7 +760,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 @@ -481,7 +485,7 @@ void hugetlb_free_pgd_range(struct mmu_gather *tlb, if (more > next) next = more; - + - free_hugepd_range(tlb, (hugepd_t *)pgd, PGDIR_SHIFT, + free_hugepd_range(tlb, (hugepd_t *)p4d, PGDIR_SHIFT, addr, next, floor, ceiling); @@ -772,7 +772,7 @@ index b195d085970a..c823f294ecf0 100644 +++ b/arch/powerpc/mm/kasan/kasan_init_32.c @@ -37,7 +37,6 @@ static int __init kasan_init_shadow_page_tables(unsigned long k_start, unsigned pte_t *new = NULL; - + pmd = pmd_ptr_k(k_start); - for (k_cur = k_start; k_cur != k_end; k_cur = k_next, pmd++) { @@ -830,7 +830,7 @@ index e3759b69f81b..c2499271f6c1 100644 + p4d_t *p4d; pud_t *pud; pmd_t *pmd; - + @@ -272,7 +273,9 @@ void assert_pte_locked(struct mm_struct *mm, unsigned long addr) return; pgd = mm->pgd + pgd_index(addr); @@ -855,13 +855,13 @@ index e3759b69f81b..c2499271f6c1 100644 hugepd_t *hpdp = NULL; - unsigned pdshift = PGDIR_SHIFT; + unsigned pdshift; - + if (hpage_shift) *hpage_shift = 0; @@ -325,24 +329,28 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea, if (is_thp) *is_thp = false; - + - pgdp = pgdir + pgd_index(ea); - pgd = READ_ONCE(*pgdp); /* @@ -879,21 +879,21 @@ index e3759b69f81b..c2499271f6c1 100644 + + if (p4d_none(p4d)) return NULL; - + - if (pgd_is_leaf(pgd)) { - ret_pte = (pte_t *)pgdp; + if (p4d_is_leaf(p4d)) { + ret_pte = (pte_t *)p4dp; goto out; } - + - if (is_hugepd(__hugepd(pgd_val(pgd)))) { - hpdp = (hugepd_t *)&pgd; + if (is_hugepd(__hugepd(p4d_val(p4d)))) { + hpdp = (hugepd_t *)&p4d; goto out_huge; } - + @@ -352,7 +360,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea, * irq disabled */ @@ -901,14 +901,14 @@ index e3759b69f81b..c2499271f6c1 100644 - pudp = pud_offset(&pgd, ea); + pudp = pud_offset(&p4d, ea); pud = READ_ONCE(*pudp); - + if (pud_none(pud)) diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c index e78832dce7bb..1f86a88fd4bb 100644 --- a/arch/powerpc/mm/pgtable_64.c +++ b/arch/powerpc/mm/pgtable_64.c @@ -101,13 +101,13 @@ EXPORT_SYMBOL(__pte_frag_size_shift); - + #ifndef __PAGETABLE_PUD_FOLDED /* 4 level page table */ -struct page *pgd_page(pgd_t pgd) @@ -925,7 +925,7 @@ index e78832dce7bb..1f86a88fd4bb 100644 + return virt_to_page(p4d_page_vaddr(p4d)); } #endif - + diff --git a/arch/powerpc/mm/ptdump/hashpagetable.c b/arch/powerpc/mm/ptdump/hashpagetable.c index b6ed9578382f..6aaeb1eb3b9c 100644 --- a/arch/powerpc/mm/ptdump/hashpagetable.c @@ -933,7 +933,7 @@ index b6ed9578382f..6aaeb1eb3b9c 100644 @@ -417,9 +417,9 @@ static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start) } } - + -static void walk_pud(struct pg_state *st, pgd_t *pgd, unsigned long start) +static void walk_pud(struct pg_state *st, p4d_t *p4d, unsigned long start) { @@ -941,11 +941,11 @@ index b6ed9578382f..6aaeb1eb3b9c 100644 + pud_t *pud = pud_offset(p4d, 0); unsigned long addr; unsigned int i; - + @@ -431,6 +431,20 @@ static void walk_pud(struct pg_state *st, pgd_t *pgd, unsigned long start) } } - + +static void walk_p4d(struct pg_state *st, pgd_t *pgd, unsigned long start) +{ + p4d_t *p4d = p4d_offset(pgd, 0); @@ -971,7 +971,7 @@ index b6ed9578382f..6aaeb1eb3b9c 100644 + walk_p4d(st, pgd, addr); } } - + diff --git a/arch/powerpc/mm/ptdump/ptdump.c b/arch/powerpc/mm/ptdump/ptdump.c index d92bb8ea229c..507cb9793b26 100644 --- a/arch/powerpc/mm/ptdump/ptdump.c @@ -979,7 +979,7 @@ index d92bb8ea229c..507cb9793b26 100644 @@ -277,9 +277,9 @@ static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start) } } - + -static void walk_pud(struct pg_state *st, pgd_t *pgd, unsigned long start) +static void walk_pud(struct pg_state *st, p4d_t *p4d, unsigned long start) { @@ -987,7 +987,7 @@ index d92bb8ea229c..507cb9793b26 100644 + pud_t *pud = pud_offset(p4d, 0); unsigned long addr; unsigned int i; - + @@ -304,11 +304,13 @@ static void walk_pagetables(struct pg_state *st) * the hash pagetable. */ @@ -1005,7 +1005,7 @@ index d92bb8ea229c..507cb9793b26 100644 + note_page(st, addr, 1, p4d_val(*p4d)); } } - + diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c index e8c84d265602..0e1cc7275566 100644 --- a/arch/powerpc/xmon/xmon.c @@ -1021,7 +1021,7 @@ index e8c84d265602..0e1cc7275566 100644 @@ -3161,20 +3162,21 @@ static void show_pte(unsigned long addr) pgdir = pgd_offset(mm, 0); } - + - if (pgd_none(*pgdp)) { - printf("no linux page table for address\n"); + p4dp = p4d_offset(pgdp, addr); @@ -1030,7 +1030,7 @@ index e8c84d265602..0e1cc7275566 100644 + printf("No valid P4D\n"); return; } - + - printf("pgd @ 0x%px\n", pgdir); - - if (pgd_is_leaf(*pgdp)) { @@ -1040,12 +1040,12 @@ index e8c84d265602..0e1cc7275566 100644 return; } - printf("pgdp @ 0x%px = 0x%016lx\n", pgdp, pgd_val(*pgdp)); - + - pudp = pud_offset(pgdp, addr); + printf("p4dp @ 0x%px = 0x%016lx\n", p4dp, p4d_val(*p4dp)); + + pudp = pud_offset(p4dp, addr); - + if (pud_none(*pudp)) { printf("No valid PUD\n"); -- diff --git a/a/content_digest b/N3/content_digest index 6483582..64351bb 100644 --- a/a/content_digest +++ b/N3/content_digest @@ -3,42 +3,45 @@ "ref\020200306200016.6f3865ada0daa68b645fe5d7@linux-foundation.org\0" "From\0Mike Rapoport <rppt@linux.ibm.com>\0" "Subject\0Re: [PATCH v3 07/14] powerpc/32: drop get_pteptr()\0" - "Date\0Sun, 08 Mar 2020 10:54:44 +0000\0" + "Date\0Sun, 8 Mar 2020 12:54:44 +0200\0" "To\0Andrew Morton <akpm@linux-foundation.org>\0" - "Cc\0Rich Felker <dalias@libc.org>" - linux-ia64@vger.kernel.org - Geert Uytterhoeven <geert+renesas@glider.be> - linux-sh@vger.kernel.org + "Cc\0Mike Rapoport <rppt@kernel.org>" + linux-kernel@vger.kernel.org + Arnd Bergmann <arnd@arndb.de> Benjamin Herrenschmidt <benh@kernel.crashing.org> - linux-mm@kvack.org - Paul Mackerras <paulus@samba.org> - linux-hexagon@vger.kernel.org - Will Deacon <will@kernel.org> - kvmarm@lists.cs.columbia.edu - Jonas Bonn <jonas@southpole.se> - linux-arch@vger.kernel.org Brian Cain <bcain@codeaurora.org> - Marc Zyngier <maz@kernel.org> - Russell King <linux@armlinux.org.uk> - Ley Foon Tan <ley.foon.tan@intel.com> Catalin Marinas <catalin.marinas@arm.com> - uclinux-h8-devel@lists.sourceforge.jp + Christophe Leroy <christophe.leroy@c-s.fr> Fenghua Yu <fenghua.yu@intel.com> - Arnd Bergmann <arnd@arndb.de> - kvm-ppc@vger.kernel.org - Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> - openrisc@lists.librecores.org - Stafford Horne <shorne@gmail.com> + Geert Uytterhoeven <geert+renesas@glider.be> Guan Xuetao <gxt@pku.edu.cn> - linux-arm-kernel@lists.infradead.org - Christophe Leroy <christophe.leroy@c-s.fr> + James Morse <james.morse@arm.com> + Jonas Bonn <jonas@southpole.se> + Julien Thierry <julien.thierry.kdev@gmail.com> + Ley Foon Tan <ley.foon.tan@intel.com> + Marc Zyngier <maz@kernel.org> + Michael Ellerman <mpe@ellerman.id.au> + Paul Mackerras <paulus@samba.org> + Rich Felker <dalias@libc.org> + Russell King <linux@armlinux.org.uk> + Stafford Horne <shorne@gmail.com> + Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> + Suzuki K Poulose <suzuki.poulose@arm.com> Tony Luck <tony.luck@intel.com> + Will Deacon <will@kernel.org> Yoshinori Sato <ysato@users.sourceforge.jp> - linux-kernel@vger.kernel.org - Michael Ellerman <mpe@ellerman.id.au> - nios2-dev@lists.rocketboards.org + kvmarm@lists.cs.columbia.edu + kvm-ppc@vger.kernel.org + linux-arch@vger.kernel.org + linux-arm-kernel@lists.infradead.org + linux-hexagon@vger.kernel.org + linux-ia64@vger.kernel.org + linux-mm@kvack.org linuxppc-dev@lists.ozlabs.org - " Mike Rapoport <rppt@kernel.org>\0" + linux-sh@vger.kernel.org + nios2-dev@lists.rocketboards.org + openrisc@lists.librecores.org + " uclinux-h8-devel@lists.sourceforge.jp\0" "\00:1\0" "b\0" "On Fri, Mar 06, 2020 at 08:00:16PM -0800, Andrew Morton wrote:\n" @@ -61,7 +64,7 @@ "> powerpc-32-drop-get_pteptr.patch and\n" "> powerpc-add-support-for-folded-p4d-page-tables.patch (and\n" "> powerpc-add-support-for-folded-p4d-page-tables-fix.patch)?\n" - " \n" + "\n" "This is the powerpc-add-support-for-folded-p4d-page-tables.patch on top of\n" "current powerpc/next. The powerpc-32-drop-get_pteptr.patch is already there\n" "and I've folded powerpc-add-support-for-folded-p4d-page-tables-fix.patch\n" @@ -110,24 +113,24 @@ "@@ -2,7 +2,6 @@\n" " #ifndef _ASM_POWERPC_BOOK3S_32_PGTABLE_H\n" " #define _ASM_POWERPC_BOOK3S_32_PGTABLE_H\n" - " \n" + "\n" "-#define __ARCH_USE_5LEVEL_HACK\n" " #include <asm-generic/pgtable-nopmd.h>\n" - " \n" + "\n" " #include <asm/book3s/32/hash.h>\n" "diff --git a/arch/powerpc/include/asm/book3s/64/hash.h b/arch/powerpc/include/asm/book3s/64/hash.h\n" "index 2781ebf6add4..876d1528c2cf 100644\n" "--- a/arch/powerpc/include/asm/book3s/64/hash.h\n" "+++ b/arch/powerpc/include/asm/book3s/64/hash.h\n" "@@ -134,9 +134,9 @@ static inline int get_region_id(unsigned long ea)\n" - " \n" + "\n" " #define\thash__pmd_bad(pmd)\t\t(pmd_val(pmd) & H_PMD_BAD_BITS)\n" " #define\thash__pud_bad(pud)\t\t(pud_val(pud) & H_PUD_BAD_BITS)\n" "-static inline int hash__pgd_bad(pgd_t pgd)\n" "+static inline int hash__p4d_bad(p4d_t p4d)\n" " {\n" - "-\treturn (pgd_val(pgd) = 0);\n" - "+\treturn (p4d_val(p4d) = 0);\n" + "-\treturn (pgd_val(pgd) == 0);\n" + "+\treturn (p4d_val(p4d) == 0);\n" " }\n" " #ifdef CONFIG_STRICT_KERNEL_RWX\n" " extern void hash__mark_rodata_ro(void);\n" @@ -138,14 +141,14 @@ "@@ -85,9 +85,9 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)\n" " \tkmem_cache_free(PGT_CACHE(PGD_INDEX_SIZE), pgd);\n" " }\n" - " \n" + "\n" "-static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)\n" "+static inline void p4d_populate(struct mm_struct *mm, p4d_t *pgd, pud_t *pud)\n" " {\n" "-\t*pgd = __pgd(__pgtable_ptr_val(pud) | PGD_VAL_BITS);\n" "+\t*pgd = __p4d(__pgtable_ptr_val(pud) | PGD_VAL_BITS);\n" " }\n" - " \n" + "\n" " static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)\n" "diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h\n" "index 201a69e6a355..fa60e8594b9f 100644\n" @@ -154,10 +157,10 @@ "@@ -2,7 +2,7 @@\n" " #ifndef _ASM_POWERPC_BOOK3S_64_PGTABLE_H_\n" " #define _ASM_POWERPC_BOOK3S_64_PGTABLE_H_\n" - " \n" + "\n" "-#include <asm-generic/5level-fixup.h>\n" "+#include <asm-generic/pgtable-nop4d.h>\n" - " \n" + "\n" " #ifndef __ASSEMBLY__\n" " #include <linux/mmdebug.h>\n" "@@ -251,7 +251,7 @@ extern unsigned long __pmd_frag_size_shift;\n" @@ -166,13 +169,13 @@ " /* Bits to mask out from a PGD to get to the PUD page */\n" "-#define PGD_MASKED_BITS\t\t0xc0000000000000ffUL\n" "+#define P4D_MASKED_BITS\t\t0xc0000000000000ffUL\n" - " \n" + "\n" " /*\n" " * Used as an indicator for rcu callback functions\n" "@@ -949,54 +949,60 @@ static inline bool pud_access_permitted(pud_t pud, bool write)\n" " \treturn pte_access_permitted(pud_pte(pud), write);\n" " }\n" - " \n" + "\n" "-#define pgd_write(pgd)\t\tpte_write(pgd_pte(pgd))\n" "+#define __p4d_raw(x)\t((p4d_t) { __pgd_raw(x) })\n" "+static inline __be64 p4d_raw(p4d_t x)\n" @@ -181,42 +184,42 @@ "+}\n" "+\n" "+#define p4d_write(p4d)\t\tpte_write(p4d_pte(p4d))\n" - " \n" + "\n" "-static inline void pgd_clear(pgd_t *pgdp)\n" "+static inline void p4d_clear(p4d_t *p4dp)\n" " {\n" "-\t*pgdp = __pgd(0);\n" "+\t*p4dp = __p4d(0);\n" " }\n" - " \n" + "\n" "-static inline int pgd_none(pgd_t pgd)\n" "+static inline int p4d_none(p4d_t p4d)\n" " {\n" "-\treturn !pgd_raw(pgd);\n" "+\treturn !p4d_raw(p4d);\n" " }\n" - " \n" + "\n" "-static inline int pgd_present(pgd_t pgd)\n" "+static inline int p4d_present(p4d_t p4d)\n" " {\n" "-\treturn !!(pgd_raw(pgd) & cpu_to_be64(_PAGE_PRESENT));\n" "+\treturn !!(p4d_raw(p4d) & cpu_to_be64(_PAGE_PRESENT));\n" " }\n" - " \n" + "\n" "-static inline pte_t pgd_pte(pgd_t pgd)\n" "+static inline pte_t p4d_pte(p4d_t p4d)\n" " {\n" "-\treturn __pte_raw(pgd_raw(pgd));\n" "+\treturn __pte_raw(p4d_raw(p4d));\n" " }\n" - " \n" + "\n" "-static inline pgd_t pte_pgd(pte_t pte)\n" "+static inline p4d_t pte_p4d(pte_t pte)\n" " {\n" "-\treturn __pgd_raw(pte_raw(pte));\n" "+\treturn __p4d_raw(pte_raw(pte));\n" " }\n" - " \n" + "\n" "-static inline int pgd_bad(pgd_t pgd)\n" "+static inline int p4d_bad(p4d_t p4d)\n" " {\n" @@ -226,7 +229,7 @@ "+\t\treturn radix__p4d_bad(p4d);\n" "+\treturn hash__p4d_bad(p4d);\n" " }\n" - " \n" + "\n" "-#define pgd_access_permitted pgd_access_permitted\n" "-static inline bool pgd_access_permitted(pgd_t pgd, bool write)\n" "+#define p4d_access_permitted p4d_access_permitted\n" @@ -235,24 +238,24 @@ "-\treturn pte_access_permitted(pgd_pte(pgd), write);\n" "+\treturn pte_access_permitted(p4d_pte(p4d), write);\n" " }\n" - " \n" + "\n" "-extern struct page *pgd_page(pgd_t pgd);\n" "+extern struct page *p4d_page(p4d_t p4d);\n" - " \n" + "\n" " /* Pointers in the page table tree are physical addresses */\n" " #define __pgtable_ptr_val(ptr)\t__pa(ptr)\n" - " \n" + "\n" " #define pmd_page_vaddr(pmd)\t__va(pmd_val(pmd) & ~PMD_MASKED_BITS)\n" " #define pud_page_vaddr(pud)\t__va(pud_val(pud) & ~PUD_MASKED_BITS)\n" "-#define pgd_page_vaddr(pgd)\t__va(pgd_val(pgd) & ~PGD_MASKED_BITS)\n" "+#define p4d_page_vaddr(p4d)\t__va(p4d_val(p4d) & ~P4D_MASKED_BITS)\n" - " \n" + "\n" " #define pgd_index(address) (((address) >> (PGDIR_SHIFT)) & (PTRS_PER_PGD - 1))\n" " #define pud_index(address) (((address) >> (PUD_SHIFT)) & (PTRS_PER_PUD - 1))\n" "@@ -1010,8 +1016,8 @@ extern struct page *pgd_page(pgd_t pgd);\n" - " \n" + "\n" " #define pgd_offset(mm, address)\t ((mm)->pgd + pgd_index(address))\n" - " \n" + "\n" "-#define pud_offset(pgdp, addr)\t\\\n" "-\t(((pud_t *) pgd_page_vaddr(*(pgdp))) + pud_index(addr))\n" "+#define pud_offset(p4dp, addr)\t\\\n" @@ -263,7 +266,7 @@ "@@ -1368,11 +1374,11 @@ static inline bool pud_is_leaf(pud_t pud)\n" " \treturn !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));\n" " }\n" - " \n" + "\n" "-#define pgd_is_leaf pgd_is_leaf\n" "-#define pgd_leaf pgd_is_leaf\n" "-static inline bool pgd_is_leaf(pgd_t pgd)\n" @@ -274,7 +277,7 @@ "-\treturn !!(pgd_raw(pgd) & cpu_to_be64(_PAGE_PTE));\n" "+\treturn !!(p4d_raw(p4d) & cpu_to_be64(_PAGE_PTE));\n" " }\n" - " \n" + "\n" " #endif /* __ASSEMBLY__ */\n" "diff --git a/arch/powerpc/include/asm/book3s/64/radix.h b/arch/powerpc/include/asm/book3s/64/radix.h\n" "index d97db3ad9aae..9bca2ac64220 100644\n" @@ -286,20 +289,20 @@ " #define RADIX_PUD_BAD_BITS\t\t0x60000000000000e0UL\n" "-#define RADIX_PGD_BAD_BITS\t\t0x60000000000000e0UL\n" "+#define RADIX_P4D_BAD_BITS\t\t0x60000000000000e0UL\n" - " \n" + "\n" " #define RADIX_PMD_SHIFT\t\t(PAGE_SHIFT + RADIX_PTE_INDEX_SIZE)\n" " #define RADIX_PUD_SHIFT\t\t(RADIX_PMD_SHIFT + RADIX_PMD_INDEX_SIZE)\n" "@@ -227,9 +227,9 @@ static inline int radix__pud_bad(pud_t pud)\n" " }\n" - " \n" - " \n" + "\n" + "\n" "-static inline int radix__pgd_bad(pgd_t pgd)\n" "+static inline int radix__p4d_bad(p4d_t p4d)\n" " {\n" "-\treturn !!(pgd_val(pgd) & RADIX_PGD_BAD_BITS);\n" "+\treturn !!(p4d_val(p4d) & RADIX_P4D_BAD_BITS);\n" " }\n" - " \n" + "\n" " #ifdef CONFIG_TRANSPARENT_HUGEPAGE\n" "diff --git a/arch/powerpc/include/asm/nohash/32/pgtable.h b/arch/powerpc/include/asm/nohash/32/pgtable.h\n" "index b04ba257fddb..3d0bc99dd520 100644\n" @@ -308,10 +311,10 @@ "@@ -2,7 +2,6 @@\n" " #ifndef _ASM_POWERPC_NOHASH_32_PGTABLE_H\n" " #define _ASM_POWERPC_NOHASH_32_PGTABLE_H\n" - " \n" + "\n" "-#define __ARCH_USE_5LEVEL_HACK\n" " #include <asm-generic/pgtable-nopmd.h>\n" - " \n" + "\n" " #ifndef __ASSEMBLY__\n" "diff --git a/arch/powerpc/include/asm/nohash/64/pgalloc.h b/arch/powerpc/include/asm/nohash/64/pgalloc.h\n" "index b9534a793293..668aee6017e7 100644\n" @@ -320,10 +323,10 @@ "@@ -15,7 +15,7 @@ struct vmemmap_backing {\n" " };\n" " extern struct vmemmap_backing *vmemmap_list;\n" - " \n" + "\n" "-#define pgd_populate(MM, PGD, PUD)\tpgd_set(PGD, (unsigned long)PUD)\n" "+#define p4d_populate(MM, P4D, PUD)\tp4d_set(P4D, (unsigned long)PUD)\n" - " \n" + "\n" " static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)\n" " {\n" "diff --git a/arch/powerpc/include/asm/nohash/64/pgtable-4k.h b/arch/powerpc/include/asm/nohash/64/pgtable-4k.h\n" @@ -333,10 +336,10 @@ "@@ -2,7 +2,7 @@\n" " #ifndef _ASM_POWERPC_NOHASH_64_PGTABLE_4K_H\n" " #define _ASM_POWERPC_NOHASH_64_PGTABLE_4K_H\n" - " \n" + "\n" "-#include <asm-generic/5level-fixup.h>\n" "+#include <asm-generic/pgtable-nop4d.h>\n" - " \n" + "\n" " /*\n" " * Entries per page directory level. The PTE level must use a 64b record\n" "@@ -45,41 +45,41 @@\n" @@ -347,37 +350,37 @@ "-#define PGD_MASKED_BITS\t\t0\n" "+/* Bits to mask out from a P4D to get to the PUD page */\n" "+#define P4D_MASKED_BITS\t\t0\n" - " \n" - " \n" + "\n" + "\n" " /*\n" " * 4-level page tables related bits\n" " */\n" - " \n" + "\n" "-#define pgd_none(pgd)\t\t(!pgd_val(pgd))\n" - "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) = 0)\n" + "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) == 0)\n" "-#define pgd_present(pgd)\t(pgd_val(pgd) != 0)\n" "-#define pgd_page_vaddr(pgd)\t(pgd_val(pgd) & ~PGD_MASKED_BITS)\n" "+#define p4d_none(p4d)\t\t(!p4d_val(p4d))\n" - "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) = 0)\n" + "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) == 0)\n" "+#define p4d_present(p4d)\t(p4d_val(p4d) != 0)\n" "+#define p4d_page_vaddr(p4d)\t(p4d_val(p4d) & ~P4D_MASKED_BITS)\n" - " \n" + "\n" " #ifndef __ASSEMBLY__\n" - " \n" + "\n" "-static inline void pgd_clear(pgd_t *pgdp)\n" "+static inline void p4d_clear(p4d_t *p4dp)\n" " {\n" "-\t*pgdp = __pgd(0);\n" "+\t*p4dp = __p4d(0);\n" " }\n" - " \n" + "\n" "-static inline pte_t pgd_pte(pgd_t pgd)\n" "+static inline pte_t p4d_pte(p4d_t p4d)\n" " {\n" "-\treturn __pte(pgd_val(pgd));\n" "+\treturn __pte(p4d_val(p4d));\n" " }\n" - " \n" + "\n" "-static inline pgd_t pte_pgd(pte_t pte)\n" "+static inline p4d_t pte_p4d(pte_t pte)\n" " {\n" @@ -386,15 +389,15 @@ " }\n" "-extern struct page *pgd_page(pgd_t pgd);\n" "+extern struct page *p4d_page(p4d_t p4d);\n" - " \n" + "\n" " #endif /* !__ASSEMBLY__ */\n" - " \n" + "\n" "-#define pud_offset(pgdp, addr)\t\\\n" "- (((pud_t *) pgd_page_vaddr(*(pgdp))) + \\\n" "+#define pud_offset(p4dp, addr)\t\\\n" "+ (((pud_t *) p4d_page_vaddr(*(p4dp))) + \\\n" " (((addr) >> PUD_SHIFT) & (PTRS_PER_PUD - 1)))\n" - " \n" + "\n" " #define pud_ERROR(e) \\\n" "diff --git a/arch/powerpc/include/asm/nohash/64/pgtable.h b/arch/powerpc/include/asm/nohash/64/pgtable.h\n" "index 9a33b8bd842d..b360f262b9c6 100644\n" @@ -406,14 +409,14 @@ " #define pud_write(pud)\t\tpte_write(pud_pte(pud))\n" "-#define pgd_write(pgd)\t\tpte_write(pgd_pte(pgd))\n" "+#define p4d_write(pgd)\t\tpte_write(p4d_pte(p4d))\n" - " \n" + "\n" "-static inline void pgd_set(pgd_t *pgdp, unsigned long val)\n" "+static inline void p4d_set(p4d_t *p4dp, unsigned long val)\n" " {\n" "-\t*pgdp = __pgd(val);\n" "+\t*p4dp = __p4d(val);\n" " }\n" - " \n" + "\n" " /*\n" "diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h\n" "index b80bfd41828d..8bc1e5c3c7be 100644\n" @@ -426,18 +429,18 @@ "-\treturn pmd_offset(pud_offset(pgd_offset(mm, va), va), va);\n" "+\treturn pmd_offset(pud_offset(p4d_offset(pgd_offset(mm, va), va), va), va);\n" " }\n" - " \n" + "\n" " static inline pmd_t *pmd_ptr_k(unsigned long va)\n" " {\n" "-\treturn pmd_offset(pud_offset(pgd_offset_k(va), va), va);\n" "+\treturn pmd_offset(pud_offset(p4d_offset(pgd_offset_k(va), va), va), va);\n" " }\n" - " \n" + "\n" " static inline pte_t *virt_to_kpte(unsigned long vaddr)\n" "@@ -156,9 +156,9 @@ static inline bool pud_is_leaf(pud_t pud)\n" " }\n" " #endif\n" - " \n" + "\n" "-#ifndef pgd_is_leaf\n" "-#define pgd_is_leaf pgd_is_leaf\n" "-static inline bool pgd_is_leaf(pgd_t pgd)\n" @@ -453,11 +456,11 @@ "+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c\n" "@@ -499,13 +499,14 @@ void kvmppc_free_pgtable_radix(struct kvm *kvm, pgd_t *pgd, unsigned int lpid)\n" " \tunsigned long ig;\n" - " \n" + "\n" " \tfor (ig = 0; ig < PTRS_PER_PGD; ++ig, ++pgd) {\n" "+\t\tp4d_t *p4d = p4d_offset(pgd, 0);\n" " \t\tpud_t *pud;\n" - " \n" + "\n" "-\t\tif (!pgd_present(*pgd))\n" "+\t\tif (!p4d_present(*p4d))\n" " \t\t\tcontinue;\n" @@ -468,7 +471,7 @@ "+\t\tp4d_clear(p4d);\n" " \t}\n" " }\n" - " \n" + "\n" "@@ -566,6 +567,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,\n" " \t\t unsigned long *rmapp, struct rmap_nested **n_rmap)\n" " {\n" @@ -478,7 +481,7 @@ " \tpmd_t *pmd, *new_pmd = NULL;\n" " \tpte_t *ptep, *new_ptep = NULL;\n" "@@ -573,9 +575,11 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,\n" - " \n" + "\n" " \t/* Traverse the guest's 2nd-level tree, allocate new levels needed */\n" " \tpgd = pgtable + pgd_index(gpa);\n" "+\tp4d = p4d_offset(pgd, gpa);\n" @@ -490,9 +493,9 @@ "+\t\tpud = pud_offset(p4d, gpa);\n" " \telse\n" " \t\tnew_pud = pud_alloc_one(kvm->mm, gpa);\n" - " \n" + "\n" "@@ -596,13 +600,13 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,\n" - " \n" + "\n" " \t/* Now traverse again under the lock and change the tree */\n" " \tret = -ENOMEM;\n" "-\tif (pgd_none(*pgd)) {\n" @@ -507,7 +510,7 @@ "+\tpud = pud_offset(p4d, gpa);\n" " \tif (pud_is_leaf(*pud)) {\n" " \t\tunsigned long hgpa = gpa & PUD_MASK;\n" - " \n" + "\n" "@@ -1219,7 +1223,8 @@ static ssize_t debugfs_radix_read(struct file *file, char __user *buf,\n" " \tunsigned long gpa;\n" " \tpgd_t *pgt;\n" @@ -520,7 +523,7 @@ " \tpte_t *ptep;\n" "@@ -1292,13 +1297,14 @@ static ssize_t debugfs_radix_read(struct file *file, char __user *buf,\n" " \t\t}\n" - " \n" + "\n" " \t\tpgdp = pgt + pgd_index(gpa);\n" "-\t\tpgd = READ_ONCE(*pgdp);\n" "-\t\tif (!(pgd_val(pgd) & _PAGE_PRESENT)) {\n" @@ -531,7 +534,7 @@ "+\t\t\tgpa = (gpa & P4D_MASK) + P4D_SIZE;\n" " \t\t\tcontinue;\n" " \t\t}\n" - " \n" + "\n" "-\t\tpudp = pud_offset(&pgd, gpa);\n" "+\t\tpudp = pud_offset(&p4d, gpa);\n" " \t\tpud = READ_ONCE(*pudp);\n" @@ -547,11 +550,11 @@ " \tpud_t *pudp;\n" "+\tp4d_t *p4dp;\n" " \tpgd_t *pgdp;\n" - " \n" + "\n" " \tpgdp = pgd_offset_k(addr);\n" " \tif (unlikely(!pgdp))\n" " \t\treturn -EINVAL;\n" - " \n" + "\n" "-\tpudp = pud_offset(pgdp, addr);\n" "+\tp4dp = p4d_offset(pgdp, addr);\n" "+\tif (unlikely(!p4dp))\n" @@ -560,7 +563,7 @@ "+\tpudp = pud_offset(p4dp, addr);\n" " \tif (unlikely(!pudp))\n" " \t\treturn -EINVAL;\n" - " \n" + "\n" "diff --git a/arch/powerpc/mm/book3s64/hash_pgtable.c b/arch/powerpc/mm/book3s64/hash_pgtable.c\n" "index 64733b9cb20a..9cd15937e88a 100644\n" "--- a/arch/powerpc/mm/book3s64/hash_pgtable.c\n" @@ -595,7 +598,7 @@ " \tpud_t *pudp;\n" " \tpmd_t *pmdp;\n" " \tpte_t *ptep;\n" - " \n" + "\n" " \tpgdp = pgd_offset_k(ea);\n" "-\tif (pgd_none(*pgdp)) {\n" "+\tp4dp = p4d_offset(pgdp, ea);\n" @@ -607,7 +610,7 @@ " \t}\n" "-\tpudp = pud_offset(pgdp, ea);\n" "+\tpudp = pud_offset(p4dp, ea);\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" " \t\tptep = (pte_t *)pudp;\n" " \t\tgoto set_the_pte;\n" "@@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa,\n" @@ -627,7 +630,7 @@ "+\tpudp = pud_alloc(&init_mm, p4dp, ea);\n" " \tif (!pudp)\n" " \t\treturn -ENOMEM;\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" "@@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end,\n" " {\n" " \tunsigned long idx;\n" @@ -637,7 +640,7 @@ " \tpmd_t *pmdp;\n" " \tpte_t *ptep;\n" "@@ -185,7 +190,8 @@ void radix__change_memory_range(unsigned long start, unsigned long end,\n" - " \n" + "\n" " \tfor (idx = start; idx < end; idx += PAGE_SIZE) {\n" " \t\tpgdp = pgd_offset_k(idx);\n" "-\t\tpudp = pud_alloc(&init_mm, pgdp, idx);\n" @@ -651,30 +654,30 @@ " \tpud_t *pud_base;\n" " \tpgd_t *pgd;\n" "+\tp4d_t *p4d;\n" - " \n" + "\n" " \tspin_lock(&init_mm.page_table_lock);\n" - " \n" + "\n" "@@ -854,15 +861,16 @@ static void __meminit remove_pagetable(unsigned long start, unsigned long end)\n" " \t\tnext = pgd_addr_end(addr, end);\n" - " \n" + "\n" " \t\tpgd = pgd_offset_k(addr);\n" "-\t\tif (!pgd_present(*pgd))\n" "+\t\tp4d = p4d_offset(pgd, addr);\n" "+\t\tif (!p4d_present(*p4d))\n" " \t\t\tcontinue;\n" - " \n" + "\n" "-\t\tif (pgd_is_leaf(*pgd)) {\n" "-\t\t\tsplit_kernel_mapping(addr, end, PGDIR_SIZE, (pte_t *)pgd);\n" "+\t\tif (p4d_is_leaf(*p4d)) {\n" "+\t\t\tsplit_kernel_mapping(addr, end, P4D_SIZE, (pte_t *)p4d);\n" " \t\t\tcontinue;\n" " \t\t}\n" - " \n" + "\n" "-\t\tpud_base = (pud_t *)pgd_page_vaddr(*pgd);\n" "+\t\tpud_base = (pud_t *)p4d_page_vaddr(*p4d);\n" " \t\tremove_pud_table(pud_base, addr, next);\n" " \t}\n" - " \n" + "\n" "diff --git a/arch/powerpc/mm/book3s64/subpage_prot.c b/arch/powerpc/mm/book3s64/subpage_prot.c\n" "index 2ef24a53f4c9..25a0c044bd93 100644\n" "--- a/arch/powerpc/mm/book3s64/subpage_prot.c\n" @@ -688,7 +691,7 @@ " \tpmd_t *pmd;\n" " \tpte_t *pte;\n" " \tspinlock_t *ptl;\n" - " \n" + "\n" " \tpgd = pgd_offset(mm, addr);\n" "-\tif (pgd_none(*pgd))\n" "+\tp4d = p4d_offset(pgd, addr);\n" @@ -712,13 +715,13 @@ " \tpmd_t *pm;\n" " \thugepd_t *hpdp = NULL;\n" "@@ -121,20 +122,21 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz\n" - " \n" + "\n" " \taddr &= ~(sz-1);\n" " \tpg = pgd_offset(mm, addr);\n" "+\tp4 = p4d_offset(pg, addr);\n" - " \n" + "\n" " #ifdef CONFIG_PPC_BOOK3S_64\n" - " \tif (pshift = PGDIR_SHIFT)\n" + " \tif (pshift == PGDIR_SHIFT)\n" " \t\t/* 16GB huge page */\n" "-\t\treturn (pte_t *) pg;\n" "+\t\treturn (pte_t *) p4;\n" @@ -735,7 +738,7 @@ "+\t\tpu = pud_alloc(mm, p4, addr);\n" " \t\tif (!pu)\n" " \t\t\treturn NULL;\n" - " \t\tif (pshift = PUD_SHIFT)\n" + " \t\tif (pshift == PUD_SHIFT)\n" "@@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz\n" " #else\n" " \tif (pshift >= PGDIR_SHIFT) {\n" @@ -752,14 +755,14 @@ "@@ -384,7 +386,7 @@ static void hugetlb_free_pmd_range(struct mmu_gather *tlb, pud_t *pud,\n" " \tmm_dec_nr_pmds(tlb->mm);\n" " }\n" - " \n" + "\n" "-static void hugetlb_free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,\n" "+static void hugetlb_free_pud_range(struct mmu_gather *tlb, p4d_t *p4d,\n" " \t\t\t\t unsigned long addr, unsigned long end,\n" " \t\t\t\t unsigned long floor, unsigned long ceiling)\n" " {\n" "@@ -394,7 +396,7 @@ static void hugetlb_free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,\n" - " \n" + "\n" " \tstart = addr;\n" " \tdo {\n" "-\t\tpud = pud_offset(pgd, addr);\n" @@ -770,7 +773,7 @@ "@@ -429,8 +431,8 @@ static void hugetlb_free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,\n" " \tif (end - 1 > ceiling - 1)\n" " \t\treturn;\n" - " \n" + "\n" "-\tpud = pud_offset(pgd, start);\n" "-\tpgd_clear(pgd);\n" "+\tpud = pud_offset(p4d, start);\n" @@ -784,7 +787,7 @@ " \tpgd_t *pgd;\n" "+\tp4d_t *p4d;\n" " \tunsigned long next;\n" - " \n" + "\n" " \t/*\n" "@@ -465,10 +468,11 @@ void hugetlb_free_pgd_range(struct mmu_gather *tlb,\n" " \tdo {\n" @@ -803,7 +806,7 @@ "@@ -481,7 +485,7 @@ void hugetlb_free_pgd_range(struct mmu_gather *tlb,\n" " \t\t\tif (more > next)\n" " \t\t\t\tnext = more;\n" - " \n" + "\n" "-\t\t\tfree_hugepd_range(tlb, (hugepd_t *)pgd, PGDIR_SHIFT,\n" "+\t\t\tfree_hugepd_range(tlb, (hugepd_t *)p4d, PGDIR_SHIFT,\n" " \t\t\t\t\t addr, next, floor, ceiling);\n" @@ -815,7 +818,7 @@ "+++ b/arch/powerpc/mm/kasan/kasan_init_32.c\n" "@@ -37,7 +37,6 @@ static int __init kasan_init_shadow_page_tables(unsigned long k_start, unsigned\n" " \tpte_t *new = NULL;\n" - " \n" + "\n" " \tpmd = pmd_ptr_k(k_start);\n" "-\n" " \tfor (k_cur = k_start; k_cur != k_end; k_cur = k_next, pmd++) {\n" @@ -873,7 +876,7 @@ "+\tp4d_t *p4d;\n" " \tpud_t *pud;\n" " \tpmd_t *pmd;\n" - " \n" + "\n" "@@ -272,7 +273,9 @@ void assert_pte_locked(struct mm_struct *mm, unsigned long addr)\n" " \t\treturn;\n" " \tpgd = mm->pgd + pgd_index(addr);\n" @@ -898,13 +901,13 @@ " \thugepd_t *hpdp = NULL;\n" "-\tunsigned pdshift = PGDIR_SHIFT;\n" "+\tunsigned pdshift;\n" - " \n" + "\n" " \tif (hpage_shift)\n" " \t\t*hpage_shift = 0;\n" "@@ -325,24 +329,28 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,\n" " \tif (is_thp)\n" " \t\t*is_thp = false;\n" - " \n" + "\n" "-\tpgdp = pgdir + pgd_index(ea);\n" "-\tpgd = READ_ONCE(*pgdp);\n" " \t/*\n" @@ -922,21 +925,21 @@ "+\n" "+\tif (p4d_none(p4d))\n" " \t\treturn NULL;\n" - " \n" + "\n" "-\tif (pgd_is_leaf(pgd)) {\n" "-\t\tret_pte = (pte_t *)pgdp;\n" "+\tif (p4d_is_leaf(p4d)) {\n" "+\t\tret_pte = (pte_t *)p4dp;\n" " \t\tgoto out;\n" " \t}\n" - " \n" + "\n" "-\tif (is_hugepd(__hugepd(pgd_val(pgd)))) {\n" "-\t\thpdp = (hugepd_t *)&pgd;\n" "+\tif (is_hugepd(__hugepd(p4d_val(p4d)))) {\n" "+\t\thpdp = (hugepd_t *)&p4d;\n" " \t\tgoto out_huge;\n" " \t}\n" - " \n" + "\n" "@@ -352,7 +360,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,\n" " \t * irq disabled\n" " \t */\n" @@ -944,14 +947,14 @@ "-\tpudp = pud_offset(&pgd, ea);\n" "+\tpudp = pud_offset(&p4d, ea);\n" " \tpud = READ_ONCE(*pudp);\n" - " \n" + "\n" " \tif (pud_none(pud))\n" "diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c\n" "index e78832dce7bb..1f86a88fd4bb 100644\n" "--- a/arch/powerpc/mm/pgtable_64.c\n" "+++ b/arch/powerpc/mm/pgtable_64.c\n" "@@ -101,13 +101,13 @@ EXPORT_SYMBOL(__pte_frag_size_shift);\n" - " \n" + "\n" " #ifndef __PAGETABLE_PUD_FOLDED\n" " /* 4 level page table */\n" "-struct page *pgd_page(pgd_t pgd)\n" @@ -968,7 +971,7 @@ "+\treturn virt_to_page(p4d_page_vaddr(p4d));\n" " }\n" " #endif\n" - " \n" + "\n" "diff --git a/arch/powerpc/mm/ptdump/hashpagetable.c b/arch/powerpc/mm/ptdump/hashpagetable.c\n" "index b6ed9578382f..6aaeb1eb3b9c 100644\n" "--- a/arch/powerpc/mm/ptdump/hashpagetable.c\n" @@ -976,7 +979,7 @@ "@@ -417,9 +417,9 @@ static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start)\n" " \t}\n" " }\n" - " \n" + "\n" "-static void walk_pud(struct pg_state *st, pgd_t *pgd, unsigned long start)\n" "+static void walk_pud(struct pg_state *st, p4d_t *p4d, unsigned long start)\n" " {\n" @@ -984,11 +987,11 @@ "+\tpud_t *pud = pud_offset(p4d, 0);\n" " \tunsigned long addr;\n" " \tunsigned int i;\n" - " \n" + "\n" "@@ -431,6 +431,20 @@ static void walk_pud(struct pg_state *st, pgd_t *pgd, unsigned long start)\n" " \t}\n" " }\n" - " \n" + "\n" "+static void walk_p4d(struct pg_state *st, pgd_t *pgd, unsigned long start)\n" "+{\n" "+\tp4d_t *p4d = p4d_offset(pgd, 0);\n" @@ -1014,7 +1017,7 @@ "+\t\t\twalk_p4d(st, pgd, addr);\n" " \t}\n" " }\n" - " \n" + "\n" "diff --git a/arch/powerpc/mm/ptdump/ptdump.c b/arch/powerpc/mm/ptdump/ptdump.c\n" "index d92bb8ea229c..507cb9793b26 100644\n" "--- a/arch/powerpc/mm/ptdump/ptdump.c\n" @@ -1022,7 +1025,7 @@ "@@ -277,9 +277,9 @@ static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start)\n" " \t}\n" " }\n" - " \n" + "\n" "-static void walk_pud(struct pg_state *st, pgd_t *pgd, unsigned long start)\n" "+static void walk_pud(struct pg_state *st, p4d_t *p4d, unsigned long start)\n" " {\n" @@ -1030,7 +1033,7 @@ "+\tpud_t *pud = pud_offset(p4d, 0);\n" " \tunsigned long addr;\n" " \tunsigned int i;\n" - " \n" + "\n" "@@ -304,11 +304,13 @@ static void walk_pagetables(struct pg_state *st)\n" " \t * the hash pagetable.\n" " \t */\n" @@ -1048,7 +1051,7 @@ "+\t\t\tnote_page(st, addr, 1, p4d_val(*p4d));\n" " \t}\n" " }\n" - " \n" + "\n" "diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c\n" "index e8c84d265602..0e1cc7275566 100644\n" "--- a/arch/powerpc/xmon/xmon.c\n" @@ -1064,7 +1067,7 @@ "@@ -3161,20 +3162,21 @@ static void show_pte(unsigned long addr)\n" " \t\tpgdir = pgd_offset(mm, 0);\n" " \t}\n" - " \n" + "\n" "-\tif (pgd_none(*pgdp)) {\n" "-\t\tprintf(\"no linux page table for address\\n\");\n" "+\tp4dp = p4d_offset(pgdp, addr);\n" @@ -1073,7 +1076,7 @@ "+\t\tprintf(\"No valid P4D\\n\");\n" " \t\treturn;\n" " \t}\n" - " \n" + "\n" "-\tprintf(\"pgd @ 0x%px\\n\", pgdir);\n" "-\n" "-\tif (pgd_is_leaf(*pgdp)) {\n" @@ -1083,15 +1086,15 @@ " \t\treturn;\n" " \t}\n" "-\tprintf(\"pgdp @ 0x%px = 0x%016lx\\n\", pgdp, pgd_val(*pgdp));\n" - " \n" + "\n" "-\tpudp = pud_offset(pgdp, addr);\n" "+\tprintf(\"p4dp @ 0x%px = 0x%016lx\\n\", p4dp, p4d_val(*p4dp));\n" "+\n" "+\tpudp = pud_offset(p4dp, addr);\n" - " \n" + "\n" " \tif (pud_none(*pudp)) {\n" " \t\tprintf(\"No valid PUD\\n\");\n" "-- \n" 2.25.1 -e30d2ac7f438b2e0585c71db9c7ad4db182f5e18ef94a7fec3c661d022a15b71 +18ba266dc18c65a63ed5a943acff7a7e0c8c2f6ee6a5b0081c85e4cfa14372cb
diff --git a/a/1.txt b/N4/1.txt index 786f7aa..5249058 100644 --- a/a/1.txt +++ b/N4/1.txt @@ -83,8 +83,8 @@ index 2781ebf6add4..876d1528c2cf 100644 -static inline int hash__pgd_bad(pgd_t pgd) +static inline int hash__p4d_bad(p4d_t p4d) { -- return (pgd_val(pgd) = 0); -+ return (p4d_val(p4d) = 0); +- return (pgd_val(pgd) == 0); ++ return (p4d_val(p4d) == 0); } #ifdef CONFIG_STRICT_KERNEL_RWX extern void hash__mark_rodata_ro(void); @@ -311,11 +311,11 @@ index c40ec32b8194..81b1c54e3cf1 100644 */ -#define pgd_none(pgd) (!pgd_val(pgd)) --#define pgd_bad(pgd) (pgd_val(pgd) = 0) +-#define pgd_bad(pgd) (pgd_val(pgd) == 0) -#define pgd_present(pgd) (pgd_val(pgd) != 0) -#define pgd_page_vaddr(pgd) (pgd_val(pgd) & ~PGD_MASKED_BITS) +#define p4d_none(p4d) (!p4d_val(p4d)) -+#define p4d_bad(p4d) (p4d_val(p4d) = 0) ++#define p4d_bad(p4d) (p4d_val(p4d) == 0) +#define p4d_present(p4d) (p4d_val(p4d) != 0) +#define p4d_page_vaddr(p4d) (p4d_val(p4d) & ~P4D_MASKED_BITS) @@ -564,7 +564,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 } - pudp = pud_offset(pgdp, ea); + pudp = pud_offset(p4dp, ea); - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { ptep = (pte_t *)pudp; goto set_the_pte; @@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa, @@ -584,7 +584,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 + pudp = pud_alloc(&init_mm, p4dp, ea); if (!pudp) return -ENOMEM; - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { @@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end, { unsigned long idx; @@ -675,7 +675,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + p4 = p4d_offset(pg, addr); #ifdef CONFIG_PPC_BOOK3S_64 - if (pshift = PGDIR_SHIFT) + if (pshift == PGDIR_SHIFT) /* 16GB huge page */ - return (pte_t *) pg; + return (pte_t *) p4; @@ -692,7 +692,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + pu = pud_alloc(mm, p4, addr); if (!pu) return NULL; - if (pshift = PUD_SHIFT) + if (pshift == PUD_SHIFT) @@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz #else if (pshift >= PGDIR_SHIFT) { diff --git a/a/content_digest b/N4/content_digest index 6483582..463b865 100644 --- a/a/content_digest +++ b/N4/content_digest @@ -3,42 +3,29 @@ "ref\020200306200016.6f3865ada0daa68b645fe5d7@linux-foundation.org\0" "From\0Mike Rapoport <rppt@linux.ibm.com>\0" "Subject\0Re: [PATCH v3 07/14] powerpc/32: drop get_pteptr()\0" - "Date\0Sun, 08 Mar 2020 10:54:44 +0000\0" + "Date\0Sun, 8 Mar 2020 12:54:44 +0200\0" "To\0Andrew Morton <akpm@linux-foundation.org>\0" - "Cc\0Rich Felker <dalias@libc.org>" - linux-ia64@vger.kernel.org - Geert Uytterhoeven <geert+renesas@glider.be> - linux-sh@vger.kernel.org + "Cc\0Mike Rapoport <rppt@kernel.org>" + linux-kernel@vger.kernel.org + Arnd Bergmann <arnd@arndb.de> Benjamin Herrenschmidt <benh@kernel.crashing.org> - linux-mm@kvack.org - Paul Mackerras <paulus@samba.org> - linux-hexagon@vger.kernel.org - Will Deacon <will@kernel.org> - kvmarm@lists.cs.columbia.edu - Jonas Bonn <jonas@southpole.se> - linux-arch@vger.kernel.org Brian Cain <bcain@codeaurora.org> - Marc Zyngier <maz@kernel.org> - Russell King <linux@armlinux.org.uk> - Ley Foon Tan <ley.foon.tan@intel.com> Catalin Marinas <catalin.marinas@arm.com> - uclinux-h8-devel@lists.sourceforge.jp + Christophe Leroy <christophe.leroy@c-s.fr> Fenghua Yu <fenghua.yu@intel.com> - Arnd Bergmann <arnd@arndb.de> - kvm-ppc@vger.kernel.org - Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> - openrisc@lists.librecores.org - Stafford Horne <shorne@gmail.com> + Geert Uytterhoeven <geert+renesas@glider.be> Guan Xuetao <gxt@pku.edu.cn> - linux-arm-kernel@lists.infradead.org - Christophe Leroy <christophe.leroy@c-s.fr> - Tony Luck <tony.luck@intel.com> - Yoshinori Sato <ysato@users.sourceforge.jp> - linux-kernel@vger.kernel.org + James Morse <james.morse@arm.com> + Jonas Bonn <jonas@southpole.se> + Julien Thierry <julien.thierry.kdev@gmail.com> + Ley Foon Tan <ley.foon.tan@intel.com> + Marc Zyngier <maz@kernel.org> Michael Ellerman <mpe@ellerman.id.au> - nios2-dev@lists.rocketboards.org - linuxppc-dev@lists.ozlabs.org - " Mike Rapoport <rppt@kernel.org>\0" + Paul Mackerras <paulus@samba.org> + Rich Felker <dalias@libc.org> + Russell King <linux@armlinux.org.uk> + Stafford Horne <shorne@gmail.com> + " St\0" "\00:1\0" "b\0" "On Fri, Mar 06, 2020 at 08:00:16PM -0800, Andrew Morton wrote:\n" @@ -126,8 +113,8 @@ "-static inline int hash__pgd_bad(pgd_t pgd)\n" "+static inline int hash__p4d_bad(p4d_t p4d)\n" " {\n" - "-\treturn (pgd_val(pgd) = 0);\n" - "+\treturn (p4d_val(p4d) = 0);\n" + "-\treturn (pgd_val(pgd) == 0);\n" + "+\treturn (p4d_val(p4d) == 0);\n" " }\n" " #ifdef CONFIG_STRICT_KERNEL_RWX\n" " extern void hash__mark_rodata_ro(void);\n" @@ -354,11 +341,11 @@ " */\n" " \n" "-#define pgd_none(pgd)\t\t(!pgd_val(pgd))\n" - "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) = 0)\n" + "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) == 0)\n" "-#define pgd_present(pgd)\t(pgd_val(pgd) != 0)\n" "-#define pgd_page_vaddr(pgd)\t(pgd_val(pgd) & ~PGD_MASKED_BITS)\n" "+#define p4d_none(p4d)\t\t(!p4d_val(p4d))\n" - "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) = 0)\n" + "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) == 0)\n" "+#define p4d_present(p4d)\t(p4d_val(p4d) != 0)\n" "+#define p4d_page_vaddr(p4d)\t(p4d_val(p4d) & ~P4D_MASKED_BITS)\n" " \n" @@ -607,7 +594,7 @@ " \t}\n" "-\tpudp = pud_offset(pgdp, ea);\n" "+\tpudp = pud_offset(p4dp, ea);\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" " \t\tptep = (pte_t *)pudp;\n" " \t\tgoto set_the_pte;\n" "@@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa,\n" @@ -627,7 +614,7 @@ "+\tpudp = pud_alloc(&init_mm, p4dp, ea);\n" " \tif (!pudp)\n" " \t\treturn -ENOMEM;\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" "@@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end,\n" " {\n" " \tunsigned long idx;\n" @@ -718,7 +705,7 @@ "+\tp4 = p4d_offset(pg, addr);\n" " \n" " #ifdef CONFIG_PPC_BOOK3S_64\n" - " \tif (pshift = PGDIR_SHIFT)\n" + " \tif (pshift == PGDIR_SHIFT)\n" " \t\t/* 16GB huge page */\n" "-\t\treturn (pte_t *) pg;\n" "+\t\treturn (pte_t *) p4;\n" @@ -735,7 +722,7 @@ "+\t\tpu = pud_alloc(mm, p4, addr);\n" " \t\tif (!pu)\n" " \t\t\treturn NULL;\n" - " \t\tif (pshift = PUD_SHIFT)\n" + " \t\tif (pshift == PUD_SHIFT)\n" "@@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz\n" " #else\n" " \tif (pshift >= PGDIR_SHIFT) {\n" @@ -1094,4 +1081,4 @@ "-- \n" 2.25.1 -e30d2ac7f438b2e0585c71db9c7ad4db182f5e18ef94a7fec3c661d022a15b71 +9ee84c1bf68472bf79299082e9f04b5d6cd3d507da8ebd73baa75ea0b70f0949
diff --git a/a/1.txt b/N5/1.txt index 786f7aa..5249058 100644 --- a/a/1.txt +++ b/N5/1.txt @@ -83,8 +83,8 @@ index 2781ebf6add4..876d1528c2cf 100644 -static inline int hash__pgd_bad(pgd_t pgd) +static inline int hash__p4d_bad(p4d_t p4d) { -- return (pgd_val(pgd) = 0); -+ return (p4d_val(p4d) = 0); +- return (pgd_val(pgd) == 0); ++ return (p4d_val(p4d) == 0); } #ifdef CONFIG_STRICT_KERNEL_RWX extern void hash__mark_rodata_ro(void); @@ -311,11 +311,11 @@ index c40ec32b8194..81b1c54e3cf1 100644 */ -#define pgd_none(pgd) (!pgd_val(pgd)) --#define pgd_bad(pgd) (pgd_val(pgd) = 0) +-#define pgd_bad(pgd) (pgd_val(pgd) == 0) -#define pgd_present(pgd) (pgd_val(pgd) != 0) -#define pgd_page_vaddr(pgd) (pgd_val(pgd) & ~PGD_MASKED_BITS) +#define p4d_none(p4d) (!p4d_val(p4d)) -+#define p4d_bad(p4d) (p4d_val(p4d) = 0) ++#define p4d_bad(p4d) (p4d_val(p4d) == 0) +#define p4d_present(p4d) (p4d_val(p4d) != 0) +#define p4d_page_vaddr(p4d) (p4d_val(p4d) & ~P4D_MASKED_BITS) @@ -564,7 +564,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 } - pudp = pud_offset(pgdp, ea); + pudp = pud_offset(p4dp, ea); - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { ptep = (pte_t *)pudp; goto set_the_pte; @@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa, @@ -584,7 +584,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 + pudp = pud_alloc(&init_mm, p4dp, ea); if (!pudp) return -ENOMEM; - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { @@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end, { unsigned long idx; @@ -675,7 +675,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + p4 = p4d_offset(pg, addr); #ifdef CONFIG_PPC_BOOK3S_64 - if (pshift = PGDIR_SHIFT) + if (pshift == PGDIR_SHIFT) /* 16GB huge page */ - return (pte_t *) pg; + return (pte_t *) p4; @@ -692,7 +692,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + pu = pud_alloc(mm, p4, addr); if (!pu) return NULL; - if (pshift = PUD_SHIFT) + if (pshift == PUD_SHIFT) @@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz #else if (pshift >= PGDIR_SHIFT) { diff --git a/a/content_digest b/N5/content_digest index 6483582..5f0b8c9 100644 --- a/a/content_digest +++ b/N5/content_digest @@ -2,43 +2,9 @@ "ref\020200227084608.18223-8-rppt@kernel.org\0" "ref\020200306200016.6f3865ada0daa68b645fe5d7@linux-foundation.org\0" "From\0Mike Rapoport <rppt@linux.ibm.com>\0" - "Subject\0Re: [PATCH v3 07/14] powerpc/32: drop get_pteptr()\0" - "Date\0Sun, 08 Mar 2020 10:54:44 +0000\0" - "To\0Andrew Morton <akpm@linux-foundation.org>\0" - "Cc\0Rich Felker <dalias@libc.org>" - linux-ia64@vger.kernel.org - Geert Uytterhoeven <geert+renesas@glider.be> - linux-sh@vger.kernel.org - Benjamin Herrenschmidt <benh@kernel.crashing.org> - linux-mm@kvack.org - Paul Mackerras <paulus@samba.org> - linux-hexagon@vger.kernel.org - Will Deacon <will@kernel.org> - kvmarm@lists.cs.columbia.edu - Jonas Bonn <jonas@southpole.se> - linux-arch@vger.kernel.org - Brian Cain <bcain@codeaurora.org> - Marc Zyngier <maz@kernel.org> - Russell King <linux@armlinux.org.uk> - Ley Foon Tan <ley.foon.tan@intel.com> - Catalin Marinas <catalin.marinas@arm.com> - uclinux-h8-devel@lists.sourceforge.jp - Fenghua Yu <fenghua.yu@intel.com> - Arnd Bergmann <arnd@arndb.de> - kvm-ppc@vger.kernel.org - Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> - openrisc@lists.librecores.org - Stafford Horne <shorne@gmail.com> - Guan Xuetao <gxt@pku.edu.cn> - linux-arm-kernel@lists.infradead.org - Christophe Leroy <christophe.leroy@c-s.fr> - Tony Luck <tony.luck@intel.com> - Yoshinori Sato <ysato@users.sourceforge.jp> - linux-kernel@vger.kernel.org - Michael Ellerman <mpe@ellerman.id.au> - nios2-dev@lists.rocketboards.org - linuxppc-dev@lists.ozlabs.org - " Mike Rapoport <rppt@kernel.org>\0" + "Subject\0[OpenRISC] [PATCH v3 07/14] powerpc/32: drop get_pteptr()\0" + "Date\0Sun, 8 Mar 2020 12:54:44 +0200\0" + "To\0openrisc@lists.librecores.org\0" "\00:1\0" "b\0" "On Fri, Mar 06, 2020 at 08:00:16PM -0800, Andrew Morton wrote:\n" @@ -126,8 +92,8 @@ "-static inline int hash__pgd_bad(pgd_t pgd)\n" "+static inline int hash__p4d_bad(p4d_t p4d)\n" " {\n" - "-\treturn (pgd_val(pgd) = 0);\n" - "+\treturn (p4d_val(p4d) = 0);\n" + "-\treturn (pgd_val(pgd) == 0);\n" + "+\treturn (p4d_val(p4d) == 0);\n" " }\n" " #ifdef CONFIG_STRICT_KERNEL_RWX\n" " extern void hash__mark_rodata_ro(void);\n" @@ -354,11 +320,11 @@ " */\n" " \n" "-#define pgd_none(pgd)\t\t(!pgd_val(pgd))\n" - "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) = 0)\n" + "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) == 0)\n" "-#define pgd_present(pgd)\t(pgd_val(pgd) != 0)\n" "-#define pgd_page_vaddr(pgd)\t(pgd_val(pgd) & ~PGD_MASKED_BITS)\n" "+#define p4d_none(p4d)\t\t(!p4d_val(p4d))\n" - "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) = 0)\n" + "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) == 0)\n" "+#define p4d_present(p4d)\t(p4d_val(p4d) != 0)\n" "+#define p4d_page_vaddr(p4d)\t(p4d_val(p4d) & ~P4D_MASKED_BITS)\n" " \n" @@ -607,7 +573,7 @@ " \t}\n" "-\tpudp = pud_offset(pgdp, ea);\n" "+\tpudp = pud_offset(p4dp, ea);\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" " \t\tptep = (pte_t *)pudp;\n" " \t\tgoto set_the_pte;\n" "@@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa,\n" @@ -627,7 +593,7 @@ "+\tpudp = pud_alloc(&init_mm, p4dp, ea);\n" " \tif (!pudp)\n" " \t\treturn -ENOMEM;\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" "@@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end,\n" " {\n" " \tunsigned long idx;\n" @@ -718,7 +684,7 @@ "+\tp4 = p4d_offset(pg, addr);\n" " \n" " #ifdef CONFIG_PPC_BOOK3S_64\n" - " \tif (pshift = PGDIR_SHIFT)\n" + " \tif (pshift == PGDIR_SHIFT)\n" " \t\t/* 16GB huge page */\n" "-\t\treturn (pte_t *) pg;\n" "+\t\treturn (pte_t *) p4;\n" @@ -735,7 +701,7 @@ "+\t\tpu = pud_alloc(mm, p4, addr);\n" " \t\tif (!pu)\n" " \t\t\treturn NULL;\n" - " \t\tif (pshift = PUD_SHIFT)\n" + " \t\tif (pshift == PUD_SHIFT)\n" "@@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz\n" " #else\n" " \tif (pshift >= PGDIR_SHIFT) {\n" @@ -1094,4 +1060,4 @@ "-- \n" 2.25.1 -e30d2ac7f438b2e0585c71db9c7ad4db182f5e18ef94a7fec3c661d022a15b71 +4c2ba12313792e09144349b2c71e63082aaf61763bbe5573b430a1888598cbe0
diff --git a/a/1.txt b/N6/1.txt index 786f7aa..5249058 100644 --- a/a/1.txt +++ b/N6/1.txt @@ -83,8 +83,8 @@ index 2781ebf6add4..876d1528c2cf 100644 -static inline int hash__pgd_bad(pgd_t pgd) +static inline int hash__p4d_bad(p4d_t p4d) { -- return (pgd_val(pgd) = 0); -+ return (p4d_val(p4d) = 0); +- return (pgd_val(pgd) == 0); ++ return (p4d_val(p4d) == 0); } #ifdef CONFIG_STRICT_KERNEL_RWX extern void hash__mark_rodata_ro(void); @@ -311,11 +311,11 @@ index c40ec32b8194..81b1c54e3cf1 100644 */ -#define pgd_none(pgd) (!pgd_val(pgd)) --#define pgd_bad(pgd) (pgd_val(pgd) = 0) +-#define pgd_bad(pgd) (pgd_val(pgd) == 0) -#define pgd_present(pgd) (pgd_val(pgd) != 0) -#define pgd_page_vaddr(pgd) (pgd_val(pgd) & ~PGD_MASKED_BITS) +#define p4d_none(p4d) (!p4d_val(p4d)) -+#define p4d_bad(p4d) (p4d_val(p4d) = 0) ++#define p4d_bad(p4d) (p4d_val(p4d) == 0) +#define p4d_present(p4d) (p4d_val(p4d) != 0) +#define p4d_page_vaddr(p4d) (p4d_val(p4d) & ~P4D_MASKED_BITS) @@ -564,7 +564,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 } - pudp = pud_offset(pgdp, ea); + pudp = pud_offset(p4dp, ea); - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { ptep = (pte_t *)pudp; goto set_the_pte; @@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa, @@ -584,7 +584,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 + pudp = pud_alloc(&init_mm, p4dp, ea); if (!pudp) return -ENOMEM; - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { @@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end, { unsigned long idx; @@ -675,7 +675,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + p4 = p4d_offset(pg, addr); #ifdef CONFIG_PPC_BOOK3S_64 - if (pshift = PGDIR_SHIFT) + if (pshift == PGDIR_SHIFT) /* 16GB huge page */ - return (pte_t *) pg; + return (pte_t *) p4; @@ -692,7 +692,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + pu = pud_alloc(mm, p4, addr); if (!pu) return NULL; - if (pshift = PUD_SHIFT) + if (pshift == PUD_SHIFT) @@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz #else if (pshift >= PGDIR_SHIFT) { diff --git a/a/content_digest b/N6/content_digest index 6483582..5f806e9 100644 --- a/a/content_digest +++ b/N6/content_digest @@ -3,13 +3,12 @@ "ref\020200306200016.6f3865ada0daa68b645fe5d7@linux-foundation.org\0" "From\0Mike Rapoport <rppt@linux.ibm.com>\0" "Subject\0Re: [PATCH v3 07/14] powerpc/32: drop get_pteptr()\0" - "Date\0Sun, 08 Mar 2020 10:54:44 +0000\0" + "Date\0Sun, 8 Mar 2020 12:54:44 +0200\0" "To\0Andrew Morton <akpm@linux-foundation.org>\0" "Cc\0Rich Felker <dalias@libc.org>" linux-ia64@vger.kernel.org Geert Uytterhoeven <geert+renesas@glider.be> linux-sh@vger.kernel.org - Benjamin Herrenschmidt <benh@kernel.crashing.org> linux-mm@kvack.org Paul Mackerras <paulus@samba.org> linux-hexagon@vger.kernel.org @@ -22,20 +21,21 @@ Russell King <linux@armlinux.org.uk> Ley Foon Tan <ley.foon.tan@intel.com> Catalin Marinas <catalin.marinas@arm.com> + Julien Thierry <julien.thierry.kdev@gmail.com> uclinux-h8-devel@lists.sourceforge.jp Fenghua Yu <fenghua.yu@intel.com> Arnd Bergmann <arnd@arndb.de> + Suzuki K Poulose <suzuki.poulose@arm.com> kvm-ppc@vger.kernel.org Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> openrisc@lists.librecores.org Stafford Horne <shorne@gmail.com> Guan Xuetao <gxt@pku.edu.cn> linux-arm-kernel@lists.infradead.org - Christophe Leroy <christophe.leroy@c-s.fr> Tony Luck <tony.luck@intel.com> Yoshinori Sato <ysato@users.sourceforge.jp> linux-kernel@vger.kernel.org - Michael Ellerman <mpe@ellerman.id.au> + James Morse <james.morse@arm.com> nios2-dev@lists.rocketboards.org linuxppc-dev@lists.ozlabs.org " Mike Rapoport <rppt@kernel.org>\0" @@ -126,8 +126,8 @@ "-static inline int hash__pgd_bad(pgd_t pgd)\n" "+static inline int hash__p4d_bad(p4d_t p4d)\n" " {\n" - "-\treturn (pgd_val(pgd) = 0);\n" - "+\treturn (p4d_val(p4d) = 0);\n" + "-\treturn (pgd_val(pgd) == 0);\n" + "+\treturn (p4d_val(p4d) == 0);\n" " }\n" " #ifdef CONFIG_STRICT_KERNEL_RWX\n" " extern void hash__mark_rodata_ro(void);\n" @@ -354,11 +354,11 @@ " */\n" " \n" "-#define pgd_none(pgd)\t\t(!pgd_val(pgd))\n" - "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) = 0)\n" + "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) == 0)\n" "-#define pgd_present(pgd)\t(pgd_val(pgd) != 0)\n" "-#define pgd_page_vaddr(pgd)\t(pgd_val(pgd) & ~PGD_MASKED_BITS)\n" "+#define p4d_none(p4d)\t\t(!p4d_val(p4d))\n" - "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) = 0)\n" + "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) == 0)\n" "+#define p4d_present(p4d)\t(p4d_val(p4d) != 0)\n" "+#define p4d_page_vaddr(p4d)\t(p4d_val(p4d) & ~P4D_MASKED_BITS)\n" " \n" @@ -607,7 +607,7 @@ " \t}\n" "-\tpudp = pud_offset(pgdp, ea);\n" "+\tpudp = pud_offset(p4dp, ea);\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" " \t\tptep = (pte_t *)pudp;\n" " \t\tgoto set_the_pte;\n" "@@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa,\n" @@ -627,7 +627,7 @@ "+\tpudp = pud_alloc(&init_mm, p4dp, ea);\n" " \tif (!pudp)\n" " \t\treturn -ENOMEM;\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" "@@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end,\n" " {\n" " \tunsigned long idx;\n" @@ -718,7 +718,7 @@ "+\tp4 = p4d_offset(pg, addr);\n" " \n" " #ifdef CONFIG_PPC_BOOK3S_64\n" - " \tif (pshift = PGDIR_SHIFT)\n" + " \tif (pshift == PGDIR_SHIFT)\n" " \t\t/* 16GB huge page */\n" "-\t\treturn (pte_t *) pg;\n" "+\t\treturn (pte_t *) p4;\n" @@ -735,7 +735,7 @@ "+\t\tpu = pud_alloc(mm, p4, addr);\n" " \t\tif (!pu)\n" " \t\t\treturn NULL;\n" - " \t\tif (pshift = PUD_SHIFT)\n" + " \t\tif (pshift == PUD_SHIFT)\n" "@@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz\n" " #else\n" " \tif (pshift >= PGDIR_SHIFT) {\n" @@ -1094,4 +1094,4 @@ "-- \n" 2.25.1 -e30d2ac7f438b2e0585c71db9c7ad4db182f5e18ef94a7fec3c661d022a15b71 +7edb36b7718197c8fe0e8db291fbc0044b6de00144cf020fc829e451d2502ed2
diff --git a/a/1.txt b/N7/1.txt index 786f7aa..ca104c9 100644 --- a/a/1.txt +++ b/N7/1.txt @@ -83,8 +83,8 @@ index 2781ebf6add4..876d1528c2cf 100644 -static inline int hash__pgd_bad(pgd_t pgd) +static inline int hash__p4d_bad(p4d_t p4d) { -- return (pgd_val(pgd) = 0); -+ return (p4d_val(p4d) = 0); +- return (pgd_val(pgd) == 0); ++ return (p4d_val(p4d) == 0); } #ifdef CONFIG_STRICT_KERNEL_RWX extern void hash__mark_rodata_ro(void); @@ -311,11 +311,11 @@ index c40ec32b8194..81b1c54e3cf1 100644 */ -#define pgd_none(pgd) (!pgd_val(pgd)) --#define pgd_bad(pgd) (pgd_val(pgd) = 0) +-#define pgd_bad(pgd) (pgd_val(pgd) == 0) -#define pgd_present(pgd) (pgd_val(pgd) != 0) -#define pgd_page_vaddr(pgd) (pgd_val(pgd) & ~PGD_MASKED_BITS) +#define p4d_none(p4d) (!p4d_val(p4d)) -+#define p4d_bad(p4d) (p4d_val(p4d) = 0) ++#define p4d_bad(p4d) (p4d_val(p4d) == 0) +#define p4d_present(p4d) (p4d_val(p4d) != 0) +#define p4d_page_vaddr(p4d) (p4d_val(p4d) & ~P4D_MASKED_BITS) @@ -564,7 +564,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 } - pudp = pud_offset(pgdp, ea); + pudp = pud_offset(p4dp, ea); - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { ptep = (pte_t *)pudp; goto set_the_pte; @@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa, @@ -584,7 +584,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 + pudp = pud_alloc(&init_mm, p4dp, ea); if (!pudp) return -ENOMEM; - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { @@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end, { unsigned long idx; @@ -675,7 +675,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + p4 = p4d_offset(pg, addr); #ifdef CONFIG_PPC_BOOK3S_64 - if (pshift = PGDIR_SHIFT) + if (pshift == PGDIR_SHIFT) /* 16GB huge page */ - return (pte_t *) pg; + return (pte_t *) p4; @@ -692,7 +692,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + pu = pud_alloc(mm, p4, addr); if (!pu) return NULL; - if (pshift = PUD_SHIFT) + if (pshift == PUD_SHIFT) @@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz #else if (pshift >= PGDIR_SHIFT) { @@ -1050,3 +1050,9 @@ index e8c84d265602..0e1cc7275566 100644 printf("No valid PUD\n"); -- 2.25.1 + + +_______________________________________________ +linux-arm-kernel mailing list +linux-arm-kernel@lists.infradead.org +http://lists.infradead.org/mailman/listinfo/linux-arm-kernel diff --git a/a/content_digest b/N7/content_digest index 6483582..5ff10ea 100644 --- a/a/content_digest +++ b/N7/content_digest @@ -3,7 +3,7 @@ "ref\020200306200016.6f3865ada0daa68b645fe5d7@linux-foundation.org\0" "From\0Mike Rapoport <rppt@linux.ibm.com>\0" "Subject\0Re: [PATCH v3 07/14] powerpc/32: drop get_pteptr()\0" - "Date\0Sun, 08 Mar 2020 10:54:44 +0000\0" + "Date\0Sun, 8 Mar 2020 12:54:44 +0200\0" "To\0Andrew Morton <akpm@linux-foundation.org>\0" "Cc\0Rich Felker <dalias@libc.org>" linux-ia64@vger.kernel.org @@ -22,9 +22,11 @@ Russell King <linux@armlinux.org.uk> Ley Foon Tan <ley.foon.tan@intel.com> Catalin Marinas <catalin.marinas@arm.com> + Julien Thierry <julien.thierry.kdev@gmail.com> uclinux-h8-devel@lists.sourceforge.jp Fenghua Yu <fenghua.yu@intel.com> Arnd Bergmann <arnd@arndb.de> + Suzuki K Poulose <suzuki.poulose@arm.com> kvm-ppc@vger.kernel.org Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> openrisc@lists.librecores.org @@ -35,6 +37,7 @@ Tony Luck <tony.luck@intel.com> Yoshinori Sato <ysato@users.sourceforge.jp> linux-kernel@vger.kernel.org + James Morse <james.morse@arm.com> Michael Ellerman <mpe@ellerman.id.au> nios2-dev@lists.rocketboards.org linuxppc-dev@lists.ozlabs.org @@ -126,8 +129,8 @@ "-static inline int hash__pgd_bad(pgd_t pgd)\n" "+static inline int hash__p4d_bad(p4d_t p4d)\n" " {\n" - "-\treturn (pgd_val(pgd) = 0);\n" - "+\treturn (p4d_val(p4d) = 0);\n" + "-\treturn (pgd_val(pgd) == 0);\n" + "+\treturn (p4d_val(p4d) == 0);\n" " }\n" " #ifdef CONFIG_STRICT_KERNEL_RWX\n" " extern void hash__mark_rodata_ro(void);\n" @@ -354,11 +357,11 @@ " */\n" " \n" "-#define pgd_none(pgd)\t\t(!pgd_val(pgd))\n" - "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) = 0)\n" + "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) == 0)\n" "-#define pgd_present(pgd)\t(pgd_val(pgd) != 0)\n" "-#define pgd_page_vaddr(pgd)\t(pgd_val(pgd) & ~PGD_MASKED_BITS)\n" "+#define p4d_none(p4d)\t\t(!p4d_val(p4d))\n" - "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) = 0)\n" + "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) == 0)\n" "+#define p4d_present(p4d)\t(p4d_val(p4d) != 0)\n" "+#define p4d_page_vaddr(p4d)\t(p4d_val(p4d) & ~P4D_MASKED_BITS)\n" " \n" @@ -607,7 +610,7 @@ " \t}\n" "-\tpudp = pud_offset(pgdp, ea);\n" "+\tpudp = pud_offset(p4dp, ea);\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" " \t\tptep = (pte_t *)pudp;\n" " \t\tgoto set_the_pte;\n" "@@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa,\n" @@ -627,7 +630,7 @@ "+\tpudp = pud_alloc(&init_mm, p4dp, ea);\n" " \tif (!pudp)\n" " \t\treturn -ENOMEM;\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" "@@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end,\n" " {\n" " \tunsigned long idx;\n" @@ -718,7 +721,7 @@ "+\tp4 = p4d_offset(pg, addr);\n" " \n" " #ifdef CONFIG_PPC_BOOK3S_64\n" - " \tif (pshift = PGDIR_SHIFT)\n" + " \tif (pshift == PGDIR_SHIFT)\n" " \t\t/* 16GB huge page */\n" "-\t\treturn (pte_t *) pg;\n" "+\t\treturn (pte_t *) p4;\n" @@ -735,7 +738,7 @@ "+\t\tpu = pud_alloc(mm, p4, addr);\n" " \t\tif (!pu)\n" " \t\t\treturn NULL;\n" - " \t\tif (pshift = PUD_SHIFT)\n" + " \t\tif (pshift == PUD_SHIFT)\n" "@@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz\n" " #else\n" " \tif (pshift >= PGDIR_SHIFT) {\n" @@ -1092,6 +1095,12 @@ " \tif (pud_none(*pudp)) {\n" " \t\tprintf(\"No valid PUD\\n\");\n" "-- \n" - 2.25.1 + "2.25.1\n" + "\n" + "\n" + "_______________________________________________\n" + "linux-arm-kernel mailing list\n" + "linux-arm-kernel@lists.infradead.org\n" + http://lists.infradead.org/mailman/listinfo/linux-arm-kernel -e30d2ac7f438b2e0585c71db9c7ad4db182f5e18ef94a7fec3c661d022a15b71 +6f74550e6285f893330ed18411d32158d1177106759b9fec8a0c82a743b8810b
diff --git a/a/1.txt b/N8/1.txt index 786f7aa..5249058 100644 --- a/a/1.txt +++ b/N8/1.txt @@ -83,8 +83,8 @@ index 2781ebf6add4..876d1528c2cf 100644 -static inline int hash__pgd_bad(pgd_t pgd) +static inline int hash__p4d_bad(p4d_t p4d) { -- return (pgd_val(pgd) = 0); -+ return (p4d_val(p4d) = 0); +- return (pgd_val(pgd) == 0); ++ return (p4d_val(p4d) == 0); } #ifdef CONFIG_STRICT_KERNEL_RWX extern void hash__mark_rodata_ro(void); @@ -311,11 +311,11 @@ index c40ec32b8194..81b1c54e3cf1 100644 */ -#define pgd_none(pgd) (!pgd_val(pgd)) --#define pgd_bad(pgd) (pgd_val(pgd) = 0) +-#define pgd_bad(pgd) (pgd_val(pgd) == 0) -#define pgd_present(pgd) (pgd_val(pgd) != 0) -#define pgd_page_vaddr(pgd) (pgd_val(pgd) & ~PGD_MASKED_BITS) +#define p4d_none(p4d) (!p4d_val(p4d)) -+#define p4d_bad(p4d) (p4d_val(p4d) = 0) ++#define p4d_bad(p4d) (p4d_val(p4d) == 0) +#define p4d_present(p4d) (p4d_val(p4d) != 0) +#define p4d_page_vaddr(p4d) (p4d_val(p4d) & ~P4D_MASKED_BITS) @@ -564,7 +564,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 } - pudp = pud_offset(pgdp, ea); + pudp = pud_offset(p4dp, ea); - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { ptep = (pte_t *)pudp; goto set_the_pte; @@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa, @@ -584,7 +584,7 @@ index dd1bea45325c..fc3d0b0460b0 100644 + pudp = pud_alloc(&init_mm, p4dp, ea); if (!pudp) return -ENOMEM; - if (map_page_size = PUD_SIZE) { + if (map_page_size == PUD_SIZE) { @@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end, { unsigned long idx; @@ -675,7 +675,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + p4 = p4d_offset(pg, addr); #ifdef CONFIG_PPC_BOOK3S_64 - if (pshift = PGDIR_SHIFT) + if (pshift == PGDIR_SHIFT) /* 16GB huge page */ - return (pte_t *) pg; + return (pte_t *) p4; @@ -692,7 +692,7 @@ index 73d4873fc7f8..43d463f20fc3 100644 + pu = pud_alloc(mm, p4, addr); if (!pu) return NULL; - if (pshift = PUD_SHIFT) + if (pshift == PUD_SHIFT) @@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz #else if (pshift >= PGDIR_SHIFT) { diff --git a/a/content_digest b/N8/content_digest index 6483582..53ecb9b 100644 --- a/a/content_digest +++ b/N8/content_digest @@ -3,42 +3,45 @@ "ref\020200306200016.6f3865ada0daa68b645fe5d7@linux-foundation.org\0" "From\0Mike Rapoport <rppt@linux.ibm.com>\0" "Subject\0Re: [PATCH v3 07/14] powerpc/32: drop get_pteptr()\0" - "Date\0Sun, 08 Mar 2020 10:54:44 +0000\0" + "Date\0Sun, 8 Mar 2020 12:54:44 +0200\0" "To\0Andrew Morton <akpm@linux-foundation.org>\0" - "Cc\0Rich Felker <dalias@libc.org>" - linux-ia64@vger.kernel.org - Geert Uytterhoeven <geert+renesas@glider.be> - linux-sh@vger.kernel.org + "Cc\0Mike Rapoport <rppt@kernel.org>" + linux-kernel@vger.kernel.org + Arnd Bergmann <arnd@arndb.de> Benjamin Herrenschmidt <benh@kernel.crashing.org> - linux-mm@kvack.org - Paul Mackerras <paulus@samba.org> - linux-hexagon@vger.kernel.org - Will Deacon <will@kernel.org> - kvmarm@lists.cs.columbia.edu - Jonas Bonn <jonas@southpole.se> - linux-arch@vger.kernel.org Brian Cain <bcain@codeaurora.org> - Marc Zyngier <maz@kernel.org> - Russell King <linux@armlinux.org.uk> - Ley Foon Tan <ley.foon.tan@intel.com> Catalin Marinas <catalin.marinas@arm.com> - uclinux-h8-devel@lists.sourceforge.jp + Christophe Leroy <christophe.leroy@c-s.fr> Fenghua Yu <fenghua.yu@intel.com> - Arnd Bergmann <arnd@arndb.de> - kvm-ppc@vger.kernel.org - Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> - openrisc@lists.librecores.org - Stafford Horne <shorne@gmail.com> + Geert Uytterhoeven <geert+renesas@glider.be> Guan Xuetao <gxt@pku.edu.cn> - linux-arm-kernel@lists.infradead.org - Christophe Leroy <christophe.leroy@c-s.fr> + James Morse <james.morse@arm.com> + Jonas Bonn <jonas@southpole.se> + Julien Thierry <julien.thierry.kdev@gmail.com> + Ley Foon Tan <ley.foon.tan@intel.com> + Marc Zyngier <maz@kernel.org> + Michael Ellerman <mpe@ellerman.id.au> + Paul Mackerras <paulus@samba.org> + Rich Felker <dalias@libc.org> + Russell King <linux@armlinux.org.uk> + Stafford Horne <shorne@gmail.com> + Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> + Suzuki K Poulose <suzuki.poulose@arm.com> Tony Luck <tony.luck@intel.com> + Will Deacon <will@kernel.org> Yoshinori Sato <ysato@users.sourceforge.jp> - linux-kernel@vger.kernel.org - Michael Ellerman <mpe@ellerman.id.au> - nios2-dev@lists.rocketboards.org + kvmarm@lists.cs.columbia.edu + kvm-ppc@vger.kernel.org + linux-arch@vger.kernel.org + linux-arm-kernel@lists.infradead.org + linux-hexagon@vger.kernel.org + linux-ia64@vger.kernel.org + linux-mm@kvack.org linuxppc-dev@lists.ozlabs.org - " Mike Rapoport <rppt@kernel.org>\0" + linux-sh@vger.kernel.org + nios2-dev@lists.rocketboards.org + openrisc@lists.librecores.org + " uclinux-h8-devel@lists.sourceforge.jp\0" "\00:1\0" "b\0" "On Fri, Mar 06, 2020 at 08:00:16PM -0800, Andrew Morton wrote:\n" @@ -126,8 +129,8 @@ "-static inline int hash__pgd_bad(pgd_t pgd)\n" "+static inline int hash__p4d_bad(p4d_t p4d)\n" " {\n" - "-\treturn (pgd_val(pgd) = 0);\n" - "+\treturn (p4d_val(p4d) = 0);\n" + "-\treturn (pgd_val(pgd) == 0);\n" + "+\treturn (p4d_val(p4d) == 0);\n" " }\n" " #ifdef CONFIG_STRICT_KERNEL_RWX\n" " extern void hash__mark_rodata_ro(void);\n" @@ -354,11 +357,11 @@ " */\n" " \n" "-#define pgd_none(pgd)\t\t(!pgd_val(pgd))\n" - "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) = 0)\n" + "-#define pgd_bad(pgd)\t\t(pgd_val(pgd) == 0)\n" "-#define pgd_present(pgd)\t(pgd_val(pgd) != 0)\n" "-#define pgd_page_vaddr(pgd)\t(pgd_val(pgd) & ~PGD_MASKED_BITS)\n" "+#define p4d_none(p4d)\t\t(!p4d_val(p4d))\n" - "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) = 0)\n" + "+#define p4d_bad(p4d)\t\t(p4d_val(p4d) == 0)\n" "+#define p4d_present(p4d)\t(p4d_val(p4d) != 0)\n" "+#define p4d_page_vaddr(p4d)\t(p4d_val(p4d) & ~P4D_MASKED_BITS)\n" " \n" @@ -607,7 +610,7 @@ " \t}\n" "-\tpudp = pud_offset(pgdp, ea);\n" "+\tpudp = pud_offset(p4dp, ea);\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" " \t\tptep = (pte_t *)pudp;\n" " \t\tgoto set_the_pte;\n" "@@ -114,6 +116,7 @@ static int __map_kernel_page(unsigned long ea, unsigned long pa,\n" @@ -627,7 +630,7 @@ "+\tpudp = pud_alloc(&init_mm, p4dp, ea);\n" " \tif (!pudp)\n" " \t\treturn -ENOMEM;\n" - " \tif (map_page_size = PUD_SIZE) {\n" + " \tif (map_page_size == PUD_SIZE) {\n" "@@ -173,6 +177,7 @@ void radix__change_memory_range(unsigned long start, unsigned long end,\n" " {\n" " \tunsigned long idx;\n" @@ -718,7 +721,7 @@ "+\tp4 = p4d_offset(pg, addr);\n" " \n" " #ifdef CONFIG_PPC_BOOK3S_64\n" - " \tif (pshift = PGDIR_SHIFT)\n" + " \tif (pshift == PGDIR_SHIFT)\n" " \t\t/* 16GB huge page */\n" "-\t\treturn (pte_t *) pg;\n" "+\t\treturn (pte_t *) p4;\n" @@ -735,7 +738,7 @@ "+\t\tpu = pud_alloc(mm, p4, addr);\n" " \t\tif (!pu)\n" " \t\t\treturn NULL;\n" - " \t\tif (pshift = PUD_SHIFT)\n" + " \t\tif (pshift == PUD_SHIFT)\n" "@@ -159,10 +161,10 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz\n" " #else\n" " \tif (pshift >= PGDIR_SHIFT) {\n" @@ -1094,4 +1097,4 @@ "-- \n" 2.25.1 -e30d2ac7f438b2e0585c71db9c7ad4db182f5e18ef94a7fec3c661d022a15b71 +749c673e9476ff34992bae304225b3e020d47decfed5da83fd06a77bc21c22be
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.