From: Andi Kleen <andi@firstfloor.org> To: stable@vger.kernel.org Cc: "Andi Kleen" <ak@linux.intel.com>, "Tom Lendacky" <thomas.lendacky@amd.com>, "Alexander Potapenko" <glider@google.com>, "Andrey Ryabinin" <aryabinin@virtuozzo.com>, "Andy Lutomirski" <luto@kernel.org>, "Arnd Bergmann" <arnd@arndb.de>, "Borislav Petkov" <bp@alien8.de>, "Brijesh Singh" <brijesh.singh@amd.com>, "Dave Young" <dyoung@redhat.com>, "Dmitry Vyukov" <dvyukov@google.com>, "Jonathan Corbet" <corbet@lwn.net>, "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>, "Larry Woodman" <lwoodman@redhat.com>, "Linus Torvalds" <torvalds@linux-foundation.org>, "Matt Fleming" <matt@codeblueprint.co.uk>, "Michael S . Tsirkin" <mst@redhat.com>, "Paolo Bonzini" <pbonzini@redhat.com>, "Peter Zijlstra" <peterz@infradead.org>, "Radim Krčmář" <rkrcmar@redhat.com> Subject: [PATCH] x86/mm: Simplify p[g4um]d_page() macros Date: Mon, 20 Aug 2018 13:37:05 -0700 [thread overview] Message-ID: <20180820203705.16212-2-andi@firstfloor.org> (raw) In-Reply-To: <20180820203705.16212-1-andi@firstfloor.org> From: Andi Kleen <ak@linux.intel.com> Create a pgd_pfn() macro similar to the p[4um]d_pfn() macros and then use the p[g4um]d_pfn() macros in the p[g4um]d_page() macros instead of duplicating the code. Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Borislav Petkov <bp@suse.de> Cc: Alexander Potapenko <glider@google.com> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Borislav Petkov <bp@alien8.de> Cc: Brijesh Singh <brijesh.singh@amd.com> Cc: Dave Young <dyoung@redhat.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Cc: Larry Woodman <lwoodman@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Matt Fleming <matt@codeblueprint.co.uk> Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Radim Krčmář <rkrcmar@redhat.com> Cc: Rik van Riel <riel@redhat.com> Cc: Toshimitsu Kani <toshi.kani@hpe.com> Cc: kasan-dev@googlegroups.com Cc: kvm@vger.kernel.org Cc: linux-arch@vger.kernel.org Cc: linux-doc@vger.kernel.org Cc: linux-efi@vger.kernel.org Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/e61eb533a6d0aac941db2723d8aa63ef6b882dee.1500319216.git.thomas.lendacky@amd.com [Backported to 4.9 stable by AK, suggested by Michael Hocko] Signed-off-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Andi Kleen <ak@linux.intel.com> --- arch/x86/include/asm/pgtable.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h index 4de6c282c02a..68a55273ce0f 100644 --- a/arch/x86/include/asm/pgtable.h +++ b/arch/x86/include/asm/pgtable.h @@ -173,6 +173,11 @@ static inline unsigned long pud_pfn(pud_t pud) return (pfn & pud_pfn_mask(pud)) >> PAGE_SHIFT; } +static inline unsigned long pgd_pfn(pgd_t pgd) +{ + return (pgd_val(pgd) & PTE_PFN_MASK) >> PAGE_SHIFT; +} + #define pte_page(pte) pfn_to_page(pte_pfn(pte)) static inline int pmd_large(pmd_t pte) @@ -578,8 +583,7 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd) * Currently stuck as a macro due to indirect forward reference to * linux/mmzone.h's __section_mem_map_addr() definition: */ -#define pmd_page(pmd) \ - pfn_to_page((pmd_val(pmd) & pmd_pfn_mask(pmd)) >> PAGE_SHIFT) +#define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd)) /* * the pmd page can be thought of an array like this: pmd_t[PTRS_PER_PMD] @@ -647,8 +651,7 @@ static inline unsigned long pud_page_vaddr(pud_t pud) * Currently stuck as a macro due to indirect forward reference to * linux/mmzone.h's __section_mem_map_addr() definition: */ -#define pud_page(pud) \ - pfn_to_page((pud_val(pud) & pud_pfn_mask(pud)) >> PAGE_SHIFT) +#define pud_page(pud) pfn_to_page(pud_pfn(pud)) /* Find an entry in the second-level page table.. */ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address) @@ -688,7 +691,7 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd) * Currently stuck as a macro due to indirect forward reference to * linux/mmzone.h's __section_mem_map_addr() definition: */ -#define pgd_page(pgd) pfn_to_page(pgd_val(pgd) >> PAGE_SHIFT) +#define pgd_page(pgd) pfn_to_page(pgd_pfn(pgd)) /* to find an entry in a page-table-directory. */ static inline unsigned long pud_index(unsigned long address) -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Andi Kleen <andi@firstfloor.org> To: stable@vger.kernel.org Cc: "Andi Kleen" <ak@linux.intel.com>, "Tom Lendacky" <thomas.lendacky@amd.com>, "Alexander Potapenko" <glider@google.com>, "Andrey Ryabinin" <aryabinin@virtuozzo.com>, "Andy Lutomirski" <luto@kernel.org>, "Arnd Bergmann" <arnd@arndb.de>, "Borislav Petkov" <bp@alien8.de>, "Brijesh Singh" <brijesh.singh@amd.com>, "Dave Young" <dyoung@redhat.com>, "Dmitry Vyukov" <dvyukov@google.com>, "Jonathan Corbet" <corbet@lwn.net>, "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>, "Larry Woodman" <lwoodman@redhat.com>, "Linus Torvalds" <torvalds@linux-foundation.org>, "Matt Fleming" <matt@codeblueprint.co.uk>, "Michael S . Tsirkin" <mst@redhat.com>, "Paolo Bonzini" <pbonzini@redhat.com>, "Peter Zijlstra" <peterz@infradead.org>, "Radim Krčmář" <rkrcmar@redhat.com>, "Rik van Riel" <riel@redhat.com>, "Toshimitsu Kani" <toshi.kani@hpe.com>, kasan-dev@googlegroups.com, kvm@vger.kernel.org, linux-arch@vger.kernel.org, linux-doc@vger.kernel.org, linux-efi@vger.kernel.org, linux-mm@kvack.org, "Ingo Molnar" <mingo@kernel.org> Subject: [PATCH] x86/mm: Simplify p[g4um]d_page() macros Date: Mon, 20 Aug 2018 13:37:05 -0700 [thread overview] Message-ID: <20180820203705.16212-2-andi@firstfloor.org> (raw) Message-ID: <20180820203705.ji6H9LdfRwaZFtUYpjv7m8pzvwqOem2MQUzeAQbxXYs@z> (raw) In-Reply-To: <20180820203705.16212-1-andi@firstfloor.org> From: Andi Kleen <ak@linux.intel.com> Create a pgd_pfn() macro similar to the p[4um]d_pfn() macros and then use the p[g4um]d_pfn() macros in the p[g4um]d_page() macros instead of duplicating the code. Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Borislav Petkov <bp@suse.de> Cc: Alexander Potapenko <glider@google.com> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Borislav Petkov <bp@alien8.de> Cc: Brijesh Singh <brijesh.singh@amd.com> Cc: Dave Young <dyoung@redhat.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Cc: Larry Woodman <lwoodman@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Matt Fleming <matt@codeblueprint.co.uk> Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Radim Krčmář <rkrcmar@redhat.com> Cc: Rik van Riel <riel@redhat.com> Cc: Toshimitsu Kani <toshi.kani@hpe.com> Cc: kasan-dev@googlegroups.com Cc: kvm@vger.kernel.org Cc: linux-arch@vger.kernel.org Cc: linux-doc@vger.kernel.org Cc: linux-efi@vger.kernel.org Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/e61eb533a6d0aac941db2723d8aa63ef6b882dee.1500319216.git.thomas.lendacky@amd.com [Backported to 4.9 stable by AK, suggested by Michael Hocko] Signed-off-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Andi Kleen <ak@linux.intel.com> --- arch/x86/include/asm/pgtable.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h index 4de6c282c02a..68a55273ce0f 100644 --- a/arch/x86/include/asm/pgtable.h +++ b/arch/x86/include/asm/pgtable.h @@ -173,6 +173,11 @@ static inline unsigned long pud_pfn(pud_t pud) return (pfn & pud_pfn_mask(pud)) >> PAGE_SHIFT; } +static inline unsigned long pgd_pfn(pgd_t pgd) +{ + return (pgd_val(pgd) & PTE_PFN_MASK) >> PAGE_SHIFT; +} + #define pte_page(pte) pfn_to_page(pte_pfn(pte)) static inline int pmd_large(pmd_t pte) @@ -578,8 +583,7 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd) * Currently stuck as a macro due to indirect forward reference to * linux/mmzone.h's __section_mem_map_addr() definition: */ -#define pmd_page(pmd) \ - pfn_to_page((pmd_val(pmd) & pmd_pfn_mask(pmd)) >> PAGE_SHIFT) +#define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd)) /* * the pmd page can be thought of an array like this: pmd_t[PTRS_PER_PMD] @@ -647,8 +651,7 @@ static inline unsigned long pud_page_vaddr(pud_t pud) * Currently stuck as a macro due to indirect forward reference to * linux/mmzone.h's __section_mem_map_addr() definition: */ -#define pud_page(pud) \ - pfn_to_page((pud_val(pud) & pud_pfn_mask(pud)) >> PAGE_SHIFT) +#define pud_page(pud) pfn_to_page(pud_pfn(pud)) /* Find an entry in the second-level page table.. */ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address) @@ -688,7 +691,7 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd) * Currently stuck as a macro due to indirect forward reference to * linux/mmzone.h's __section_mem_map_addr() definition: */ -#define pgd_page(pgd) pfn_to_page(pgd_val(pgd) >> PAGE_SHIFT) +#define pgd_page(pgd) pfn_to_page(pgd_pfn(pgd)) /* to find an entry in a page-table-directory. */ static inline unsigned long pud_index(unsigned long address) -- 2.17.1
next parent reply other threads:[~2018-08-20 20:37 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <20180820203705.16212-1-andi@firstfloor.org> 2018-08-20 20:37 ` Andi Kleen [this message] 2018-08-20 20:37 ` [PATCH] x86/mm: Simplify p[g4um]d_page() macros Andi Kleen 2018-08-20 21:57 ` Linus Torvalds 2018-08-20 21:57 ` Linus Torvalds 2018-08-20 22:04 ` Andi Kleen 2018-08-20 22:04 ` Andi Kleen 2018-08-21 5:20 ` Greg KH 2018-08-21 5:20 ` Greg KH
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180820203705.16212-2-andi@firstfloor.org \ --to=andi@firstfloor.org \ --cc=ak@linux.intel.com \ --cc=arnd@arndb.de \ --cc=aryabinin@virtuozzo.com \ --cc=bp@alien8.de \ --cc=brijesh.singh@amd.com \ --cc=corbet@lwn.net \ --cc=dvyukov@google.com \ --cc=dyoung@redhat.com \ --cc=glider@google.com \ --cc=konrad.wilk@oracle.com \ --cc=luto@kernel.org \ --cc=lwoodman@redhat.com \ --cc=matt@codeblueprint.co.uk \ --cc=mst@redhat.com \ --cc=pbonzini@redhat.com \ --cc=peterz@infradead.org \ --cc=rkrcmar@redhat.com \ --cc=stable@vger.kernel.org \ --cc=thomas.lendacky@amd.com \ --cc=torvalds@linux-foundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).