linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] x86/mm: Simplify p[g4um]d_page() macros
       [not found] <20180820203705.16212-1-andi@firstfloor.org>
@ 2018-08-20 20:37 ` Andi Kleen
  2018-08-20 21:57   ` Linus Torvalds
  0 siblings, 1 reply; 4+ messages in thread
From: Andi Kleen @ 2018-08-20 20:37 UTC (permalink / raw)
  To: stable
  Cc: Andi Kleen, Tom Lendacky, Alexander Potapenko, Andrey Ryabinin,
	Andy Lutomirski, Arnd Bergmann, Borislav Petkov, Brijesh Singh,
	Dave Young, Dmitry Vyukov, Jonathan Corbet, Konrad Rzeszutek Wilk,
	Larry Woodman, Linus Torvalds, Matt Fleming, Michael S . Tsirkin,
	Paolo Bonzini, Peter Zijlstra, Radim Krčmář,
	Rik van Riel, Toshimitsu Kani, kasan-dev, kvm, linux-arch,
	linux-doc, linux-efi, linux-mm, Ingo Molnar

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


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] x86/mm: Simplify p[g4um]d_page() macros
  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 22:04     ` Andi Kleen
  0 siblings, 1 reply; 4+ messages in thread
From: Linus Torvalds @ 2018-08-20 21:57 UTC (permalink / raw)
  To: Andi Kleen
  Cc: stable, Andi Kleen, Tom Lendacky, Alexander Potapenko,
	Andrey Ryabinin, Andrew Lutomirski, Arnd Bergmann,
	Borislav Petkov, Brijesh Singh, Dave Young, Dmitry Vyukov,
	Jonathan Corbet, Konrad Rzeszutek Wilk, Larry Woodman,
	Matt Fleming, Michael S. Tsirkin, Paolo Bonzini, Peter Zijlstra,
	Radim Krčmář, Rik van Riel, Toshi Kani, kasan-dev,
	KVM list, linux-arch, open list:DOCUMENTATION, linux-efi,
	linux-mm, Ingo Molnar

On Mon, Aug 20, 2018 at 1:37 PM Andi Kleen <andi@firstfloor.org> wrote:
>
> 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.

When doing backports, _please_ explicitly specify which commit this is
upstream too.

Also, the original upstream patch is credited to Tom Lendacky.

Or is there something I'm not seeing, and this is different from
commit fd7e315988b7 ("x86/mm: Simplify p[g4um]d_page() macros")?

               Linus

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] x86/mm: Simplify p[g4um]d_page() macros
  2018-08-20 21:57   ` Linus Torvalds
@ 2018-08-20 22:04     ` Andi Kleen
  2018-08-21  5:20       ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: Andi Kleen @ 2018-08-20 22:04 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Andi Kleen, stable, Andi Kleen, Tom Lendacky, Alexander Potapenko,
	Andrey Ryabinin, Andrew Lutomirski, Arnd Bergmann,
	Borislav Petkov, Brijesh Singh, Dave Young, Dmitry Vyukov,
	Jonathan Corbet, Konrad Rzeszutek Wilk, Larry Woodman,
	Matt Fleming, Michael S. Tsirkin, Paolo Bonzini, Peter Zijlstra,
	Radim Krčmář, Rik van Riel, Toshi Kani, kasan-dev,
	KVM list, linux-arch, open list:DOCUMENTATION, linux-efi,
	linux-mm, Ingo Molnar

On Mon, Aug 20, 2018 at 02:57:39PM -0700, Linus Torvalds wrote:
> On Mon, Aug 20, 2018 at 1:37 PM Andi Kleen <andi@firstfloor.org> wrote:
> >
> > 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.
> 
> When doing backports, _please_ explicitly specify which commit this is
> upstream too.

Ok.

> 
> Also, the original upstream patch is credited to Tom Lendacky.

Okay.

> 
> Or is there something I'm not seeing, and this is different from
> commit fd7e315988b7 ("x86/mm: Simplify p[g4um]d_page() macros")?

No it's Tom's patch just ported to the older tree with some minor
changes. I just fat fingered it while doing the commit

-Andi

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] x86/mm: Simplify p[g4um]d_page() macros
  2018-08-20 22:04     ` Andi Kleen
@ 2018-08-21  5:20       ` Greg KH
  0 siblings, 0 replies; 4+ messages in thread
From: Greg KH @ 2018-08-21  5:20 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Linus Torvalds, stable, Andi Kleen, Tom Lendacky,
	Alexander Potapenko, Andrey Ryabinin, Andrew Lutomirski,
	Arnd Bergmann, Borislav Petkov, Brijesh Singh, Dave Young,
	Dmitry Vyukov, Jonathan Corbet, Konrad Rzeszutek Wilk,
	Larry Woodman, Matt Fleming, Michael S. Tsirkin, Paolo Bonzini,
	Peter Zijlstra, Radim Krčmář, Rik van Riel,
	Toshi Kani, kasan-dev, KVM list, linux-arch,
	open list:DOCUMENTATION, linux-efi, linux-mm, Ingo Molnar

On Mon, Aug 20, 2018 at 03:04:23PM -0700, Andi Kleen wrote:
> On Mon, Aug 20, 2018 at 02:57:39PM -0700, Linus Torvalds wrote:
> > On Mon, Aug 20, 2018 at 1:37 PM Andi Kleen <andi@firstfloor.org> wrote:
> > >
> > > 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.
> > 
> > When doing backports, _please_ explicitly specify which commit this is
> > upstream too.
> 
> Ok.
> 
> > 
> > Also, the original upstream patch is credited to Tom Lendacky.
> 
> Okay.
> 
> > 
> > Or is there something I'm not seeing, and this is different from
> > commit fd7e315988b7 ("x86/mm: Simplify p[g4um]d_page() macros")?
> 
> No it's Tom's patch just ported to the older tree with some minor
> changes. I just fat fingered it while doing the commit

Ok, I've fixed this up by hand now, please be more careful next time.

greg k-h

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-08-21  5:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20180820203705.16212-1-andi@firstfloor.org>
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 22:04     ` Andi Kleen
2018-08-21  5:20       ` Greg KH

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).