linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] x86_64: some minor paging cleanups
@ 2007-12-04 15:23 Joerg Roedel
  2007-12-04 15:23 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Joerg Roedel @ 2007-12-04 15:23 UTC (permalink / raw)
  To: tglx, mingo, hpa; +Cc: linux-kernel

This small series of patches cleans up the definition and use of the _PAGE_*
and __PAGE_KERNEL* permissions for the x86_64 code in the x86 architecture a
little bit.

The scripts are checked by checkpatch.pl now.





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

* [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_*
  2007-12-04 15:23 [PATCH 0/3] x86_64: some minor paging cleanups Joerg Roedel
@ 2007-12-04 15:23 ` Joerg Roedel
  2007-12-04 18:20   ` Dave Hansen
  2007-12-04 15:23 ` [PATCH 2/3] x86_64: use __PAGE_KERNEL* instead of _KERNPG_TABLE for 2MB PTEs in memory initialization Joerg Roedel
  2007-12-04 15:23 ` [PATCH 3/3] x86_64: use __PAGE_KERNEL_EXEC in ioremap_64.c Joerg Roedel
  2 siblings, 1 reply; 14+ messages in thread
From: Joerg Roedel @ 2007-12-04 15:23 UTC (permalink / raw)
  To: tglx, mingo, hpa; +Cc: linux-kernel, Joerg Roedel

This patch defines the _PAGE_* paging attributes in pgtable_64.h in terms of
the former defined _PAGE_BIT_* values.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
---
 include/asm-x86/pgtable_64.h |   27 +++++++++++++++------------
 1 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h
index 9b0ff47..9d4f11d 100644
--- a/include/asm-x86/pgtable_64.h
+++ b/include/asm-x86/pgtable_64.h
@@ -150,19 +150,23 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long
 #define _PAGE_BIT_ACCESSED	5
 #define _PAGE_BIT_DIRTY		6
 #define _PAGE_BIT_PSE		7	/* 4 MB (or 2MB) page */
+#define _PAGE_BIT_FILE		6
 #define _PAGE_BIT_GLOBAL	8	/* Global TLB entry PPro+ */
 #define _PAGE_BIT_NX           63       /* No execute: only valid after cpuid check */
 
-#define _PAGE_PRESENT	0x001
-#define _PAGE_RW	0x002
-#define _PAGE_USER	0x004
-#define _PAGE_PWT	0x008
-#define _PAGE_PCD	0x010
-#define _PAGE_ACCESSED	0x020
-#define _PAGE_DIRTY	0x040
-#define _PAGE_PSE	0x080	/* 2MB page */
-#define _PAGE_FILE	0x040	/* nonlinear file mapping, saved PTE; unset:swap */
-#define _PAGE_GLOBAL	0x100	/* Global TLB entry */
+#define _PAGE_PRESENT	(_AC(1, UL)<<_PAGE_BIT_PRESENT)
+#define _PAGE_RW	(_AC(1, UL)<<_PAGE_BIT_RW)
+#define _PAGE_USER	(_AC(1, UL)<<_PAGE_BIT_USER)
+#define _PAGE_PWT	(_AC(1, UL)<<_PAGE_BIT_PWT)
+#define _PAGE_PCD	(_AC(1, UL)<<_PAGE_BIT_PCD)
+#define _PAGE_ACCESSED	(_AC(1, UL)<<_PAGE_BIT_ACCESSED)
+#define _PAGE_DIRTY	(_AC(1, UL)<<_PAGE_BIT_DIRTY)
+/* 2MB page */
+#define _PAGE_PSE	(_AC(1, UL)<<_PAGE_BIT_PSE)
+/* nonlinear file mapping, saved PTE; unset:swap */
+#define _PAGE_FILE	(_AC(1, UL)<<_PAGE_BIT_FILE)
+/* Global TLB entry */
+#define _PAGE_GLOBAL	(_AC(1, UL)<<_PAGE_BIT_GLOBAL)
 
 #define _PAGE_PROTNONE	0x080	/* If not present */
 #define _PAGE_NX        (_AC(1,UL)<<_PAGE_BIT_NX)
@@ -248,8 +252,7 @@ static inline unsigned long pmd_bad(pmd_t pmd)
 #define pte_present(x)	(pte_val(x) & (_PAGE_PRESENT | _PAGE_PROTNONE))
 #define pte_clear(mm,addr,xp)	do { set_pte_at(mm, addr, xp, __pte(0)); } while (0)
 
-#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))	/* FIXME: is this
-						   right? */
+#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))	/* FIXME: is this right? */
 #define pte_page(x)	pfn_to_page(pte_pfn(x))
 #define pte_pfn(x)  ((pte_val(x) & __PHYSICAL_MASK) >> PAGE_SHIFT)
 
-- 
1.5.2.5




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

* [PATCH 2/3] x86_64: use __PAGE_KERNEL* instead of _KERNPG_TABLE for 2MB PTEs in memory initialization
  2007-12-04 15:23 [PATCH 0/3] x86_64: some minor paging cleanups Joerg Roedel
  2007-12-04 15:23 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel
@ 2007-12-04 15:23 ` Joerg Roedel
  2007-12-04 15:23 ` [PATCH 3/3] x86_64: use __PAGE_KERNEL_EXEC in ioremap_64.c Joerg Roedel
  2 siblings, 0 replies; 14+ messages in thread
From: Joerg Roedel @ 2007-12-04 15:23 UTC (permalink / raw)
  To: tglx, mingo, hpa; +Cc: linux-kernel, Joerg Roedel

This minor cleanup replaces _KERNPG_TABLE with the __PAGE_KERNEL* for 2MB PTEs
in the x86_64 memory initialization code. The __PAGE_KERNEL* defines are more
appropriate for PTEs.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
---
 arch/x86/mm/init_64.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 0f9c8c8..8db7348 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -224,7 +224,7 @@ __meminit void *early_ioremap(unsigned long addr, unsigned long size)
 		vaddr += addr & ~PMD_MASK;
 		addr &= PMD_MASK;
 		for (i = 0; i < pmds; i++, addr += PMD_SIZE)
-			set_pmd(pmd + i,__pmd(addr | _KERNPG_TABLE | _PAGE_PSE));
+			set_pmd(pmd+i, __pmd(addr | __PAGE_KERNEL_LARGE_EXEC));
 		__flush_tlb();
 		return (void *)vaddr;
 	next:
@@ -268,7 +268,7 @@ phys_pmd_init(pmd_t *pmd_page, unsigned long address, unsigned long end)
 		if (pmd_val(*pmd))
 			continue;
 
-		entry = _PAGE_NX|_PAGE_PSE|_KERNPG_TABLE|_PAGE_GLOBAL|address;
+		entry = __PAGE_KERNEL_LARGE|_PAGE_GLOBAL|address;
 		entry &= __supported_pte_mask;
 		set_pmd(pmd, __pmd(entry));
 	}
-- 
1.5.2.5




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

* [PATCH 3/3] x86_64: use __PAGE_KERNEL_EXEC in ioremap_64.c
  2007-12-04 15:23 [PATCH 0/3] x86_64: some minor paging cleanups Joerg Roedel
  2007-12-04 15:23 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel
  2007-12-04 15:23 ` [PATCH 2/3] x86_64: use __PAGE_KERNEL* instead of _KERNPG_TABLE for 2MB PTEs in memory initialization Joerg Roedel
@ 2007-12-04 15:23 ` Joerg Roedel
  2 siblings, 0 replies; 14+ messages in thread
From: Joerg Roedel @ 2007-12-04 15:23 UTC (permalink / raw)
  To: tglx, mingo, hpa; +Cc: linux-kernel, Joerg Roedel

This patch replaces the manual permission setup for pages in ioremap_64.c with
the pre-defined __PAGE_KERNEL_EXEC value.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
---
 arch/x86/mm/ioremap_64.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/arch/x86/mm/ioremap_64.c b/arch/x86/mm/ioremap_64.c
index 6cac90a..9a67fc6 100644
--- a/arch/x86/mm/ioremap_64.c
+++ b/arch/x86/mm/ioremap_64.c
@@ -103,8 +103,7 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l
 	}
 #endif
 
-	pgprot = __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_GLOBAL
-			  | _PAGE_DIRTY | _PAGE_ACCESSED | flags);
+	pgprot = __pgprot(__PAGE_KERNEL_EXEC | _PAGE_GLOBAL | flags);
 	/*
 	 * Mappings have to be page-aligned
 	 */
-- 
1.5.2.5




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

* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_*
  2007-12-04 15:23 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel
@ 2007-12-04 18:20   ` Dave Hansen
  0 siblings, 0 replies; 14+ messages in thread
From: Dave Hansen @ 2007-12-04 18:20 UTC (permalink / raw)
  To: Joerg Roedel; +Cc: tglx, mingo, hpa, linux-kernel

On Tue, 2007-12-04 at 16:23 +0100, Joerg Roedel wrote:
> 
> -#define _PAGE_FILE     0x040   /* nonlinear file mapping, saved PTE;
> unset:swap */
> -#define _PAGE_GLOBAL   0x100   /* Global TLB entry */
> +#define _PAGE_PRESENT  (_AC(1, UL)<<_PAGE_BIT_PRESENT)
> +#define _PAGE_RW       (_AC(1, UL)<<_PAGE_BIT_RW)
> +#define _PAGE_USER     (_AC(1, UL)<<_PAGE_BIT_USER)
> +#define _PAGE_PWT      (_AC(1, UL)<<_PAGE_BIT_PWT)
> +#define _PAGE_PCD      (_AC(1, UL)<<_PAGE_BIT_PCD)
> +#define _PAGE_ACCESSED (_AC(1, UL)<<_PAGE_BIT_ACCESSED)
> +#define _PAGE_DIRTY    (_AC(1, UL)<<_PAGE_BIT_DIRTY)
> +/* 2MB page */
> +#define _PAGE_PSE      (_AC(1, UL)<<_PAGE_BIT_PSE)
> +/* nonlinear file mapping, saved PTE; unset:swap */
> +#define _PAGE_FILE     (_AC(1, UL)<<_PAGE_BIT_FILE)
> +/* Global TLB entry */
> +#define _PAGE_GLOBAL   (_AC(1, UL)<<_PAGE_BIT_GLOBAL) 

Since you're defining these as macros anyway now and doing it
repetitively, could you make them a wee bit prettier?

Say something like:

#define _PAGE_MASK(x)	(_AC(1, UL)<<(x))

-- Dave


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

* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_*
  2007-12-05 11:42             ` Joerg Roedel
@ 2007-12-05 12:30               ` Ingo Molnar
  0 siblings, 0 replies; 14+ messages in thread
From: Ingo Molnar @ 2007-12-05 12:30 UTC (permalink / raw)
  To: Joerg Roedel; +Cc: tglx, hpa, linux-kernel


* Joerg Roedel <joerg.roedel@amd.com> wrote:

> > > > > Sorry, forgot to check the patches before submission. Will 
> > > > > cleanup and resubmit soon.
> > > > 
> > > > please if possible send a delta against x86.git, not a 
> > > > replacement patch. It's easier for the patchflow.
> > > 
> > > Not sure I understand you right here. Do you mean a patch on top 
> > > of my previous patches?
> > 
> > yeah - that's easier to pick up for me (because i've already got 
> > your series applied), and it's also easier for you as well. It also 
> > makes sense to generally split style fixes from substantial patches. 
> > (in the cases where there are pre-existing style problems in the 
> > code)
> 
> Ok, thanks. Will prepare a patch on top of my first patch series.

it's all in the mm branch of x86.git:

 git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6.git
 cd linux-2.6.git
 git-branch x86       # (1)
 git-checkout x86
 git-pull git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git mm

so the easiest is to do patches just against that tree.

NOTE: the x86.git tree is frequently regenerated, so it can not be 
rolling upgraded the usual git way via typing 'git-pull' - you have to 
zap your x86 branch and re-pull:

 git-checkout master
 git-branch -D x86     # this zaps everything!

and repeat from (1) above.

	Ingo

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

* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_*
  2007-12-05 11:27           ` Ingo Molnar
@ 2007-12-05 11:42             ` Joerg Roedel
  2007-12-05 12:30               ` Ingo Molnar
  0 siblings, 1 reply; 14+ messages in thread
From: Joerg Roedel @ 2007-12-05 11:42 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: tglx, hpa, linux-kernel

On Wed, Dec 05, 2007 at 12:27:58PM +0100, Ingo Molnar wrote:
> 
> * Joerg Roedel <joerg.roedel@amd.com> wrote:
> 
> > > > > please run patches through scripts/checkpatch.pl, it gives:
> > > > > 
> > > > >   total: 10 errors, 0 warnings, 42 lines checked
> > > > > 
> > > > > (please send a followup cleanup patch - i picked up your series and this 
> > > > > is a minor cleanliness issue)
> > > > 
> > > > Sorry, forgot to check the patches before submission. Will cleanup and 
> > > > resubmit soon.
> > > 
> > > please if possible send a delta against x86.git, not a replacement 
> > > patch. It's easier for the patchflow.
> > 
> > Not sure I understand you right here. Do you mean a patch on top of my 
> > previous patches?
> 
> yeah - that's easier to pick up for me (because i've already got your 
> series applied), and it's also easier for you as well. It also makes 
> sense to generally split style fixes from substantial patches. (in the 
> cases where there are pre-existing style problems in the code)

Ok, thanks. Will prepare a patch on top of my first patch series.

-- 
           |           AMD Saxony Limited Liability Company & Co. KG
 Operating |         Wilschdorfer Landstr. 101, 01109 Dresden, Germany
 System    |                  Register Court Dresden: HRA 4896
 Research  |              General Partner authorized to represent:
 Center    |             AMD Saxony LLC (Wilmington, Delaware, US)
           | General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy



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

* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_*
  2007-12-05 10:52         ` Joerg Roedel
@ 2007-12-05 11:27           ` Ingo Molnar
  2007-12-05 11:42             ` Joerg Roedel
  0 siblings, 1 reply; 14+ messages in thread
From: Ingo Molnar @ 2007-12-05 11:27 UTC (permalink / raw)
  To: Joerg Roedel; +Cc: tglx, hpa, linux-kernel


* Joerg Roedel <joerg.roedel@amd.com> wrote:

> > > > please run patches through scripts/checkpatch.pl, it gives:
> > > > 
> > > >   total: 10 errors, 0 warnings, 42 lines checked
> > > > 
> > > > (please send a followup cleanup patch - i picked up your series and this 
> > > > is a minor cleanliness issue)
> > > 
> > > Sorry, forgot to check the patches before submission. Will cleanup and 
> > > resubmit soon.
> > 
> > please if possible send a delta against x86.git, not a replacement 
> > patch. It's easier for the patchflow.
> 
> Not sure I understand you right here. Do you mean a patch on top of my 
> previous patches?

yeah - that's easier to pick up for me (because i've already got your 
series applied), and it's also easier for you as well. It also makes 
sense to generally split style fixes from substantial patches. (in the 
cases where there are pre-existing style problems in the code)

	Ingo

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

* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_*
  2007-12-04 21:07       ` Ingo Molnar
@ 2007-12-05 10:52         ` Joerg Roedel
  2007-12-05 11:27           ` Ingo Molnar
  0 siblings, 1 reply; 14+ messages in thread
From: Joerg Roedel @ 2007-12-05 10:52 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: tglx, hpa, linux-kernel

On Tue, Dec 04, 2007 at 10:07:54PM +0100, Ingo Molnar wrote:
> 
> * Joerg Roedel <joerg.roedel@amd.com> wrote:
> 
> > On Tue, Dec 04, 2007 at 01:38:09PM +0100, Ingo Molnar wrote:
> > > 
> > > * Joerg Roedel <joerg.roedel@amd.com> wrote:
> > > 
> > > > +#define _PAGE_PRESENT	(_AC(1,UL)<<_PAGE_BIT_PRESENT)
> > > 
> > > please run patches through scripts/checkpatch.pl, it gives:
> > > 
> > >   total: 10 errors, 0 warnings, 42 lines checked
> > > 
> > > (please send a followup cleanup patch - i picked up your series and this 
> > > is a minor cleanliness issue)
> > 
> > Sorry, forgot to check the patches before submission. Will cleanup and 
> > resubmit soon.
> 
> please if possible send a delta against x86.git, not a replacement 
> patch. It's easier for the patchflow.

Not sure I understand you right here. Do you mean a patch on top of my
previous patches?

-- 
           |           AMD Saxony Limited Liability Company & Co. KG
 Operating |         Wilschdorfer Landstr. 101, 01109 Dresden, Germany
 System    |                  Register Court Dresden: HRA 4896
 Research  |              General Partner authorized to represent:
 Center    |             AMD Saxony LLC (Wilmington, Delaware, US)
           | General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy



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

* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_*
  2007-12-04 15:06     ` Joerg Roedel
@ 2007-12-04 21:07       ` Ingo Molnar
  2007-12-05 10:52         ` Joerg Roedel
  0 siblings, 1 reply; 14+ messages in thread
From: Ingo Molnar @ 2007-12-04 21:07 UTC (permalink / raw)
  To: Joerg Roedel; +Cc: tglx, hpa, linux-kernel


* Joerg Roedel <joerg.roedel@amd.com> wrote:

> On Tue, Dec 04, 2007 at 01:38:09PM +0100, Ingo Molnar wrote:
> > 
> > * Joerg Roedel <joerg.roedel@amd.com> wrote:
> > 
> > > +#define _PAGE_PRESENT	(_AC(1,UL)<<_PAGE_BIT_PRESENT)
> > 
> > please run patches through scripts/checkpatch.pl, it gives:
> > 
> >   total: 10 errors, 0 warnings, 42 lines checked
> > 
> > (please send a followup cleanup patch - i picked up your series and this 
> > is a minor cleanliness issue)
> 
> Sorry, forgot to check the patches before submission. Will cleanup and 
> resubmit soon.

please if possible send a delta against x86.git, not a replacement 
patch. It's easier for the patchflow.

	Ingo

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

* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_*
  2007-12-04 12:38   ` Ingo Molnar
@ 2007-12-04 15:06     ` Joerg Roedel
  2007-12-04 21:07       ` Ingo Molnar
  0 siblings, 1 reply; 14+ messages in thread
From: Joerg Roedel @ 2007-12-04 15:06 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: tglx, hpa, linux-kernel

On Tue, Dec 04, 2007 at 01:38:09PM +0100, Ingo Molnar wrote:
> 
> * Joerg Roedel <joerg.roedel@amd.com> wrote:
> 
> > +#define _PAGE_PRESENT	(_AC(1,UL)<<_PAGE_BIT_PRESENT)
> 
> please run patches through scripts/checkpatch.pl, it gives:
> 
>   total: 10 errors, 0 warnings, 42 lines checked
> 
> (please send a followup cleanup patch - i picked up your series and this 
> is a minor cleanliness issue)

Sorry, forgot to check the patches before submission. Will cleanup and
resubmit soon.

Joerg

-- 
           |           AMD Saxony Limited Liability Company & Co. KG
 Operating |         Wilschdorfer Landstr. 101, 01109 Dresden, Germany
 System    |                  Register Court Dresden: HRA 4896
 Research  |              General Partner authorized to represent:
 Center    |             AMD Saxony LLC (Wilmington, Delaware, US)
           | General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy



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

* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_*
  2007-12-02 13:21 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel
  2007-12-04 12:36   ` Ingo Molnar
@ 2007-12-04 12:38   ` Ingo Molnar
  2007-12-04 15:06     ` Joerg Roedel
  1 sibling, 1 reply; 14+ messages in thread
From: Ingo Molnar @ 2007-12-04 12:38 UTC (permalink / raw)
  To: Joerg Roedel; +Cc: tglx, hpa, linux-kernel


* Joerg Roedel <joerg.roedel@amd.com> wrote:

> +#define _PAGE_PRESENT	(_AC(1,UL)<<_PAGE_BIT_PRESENT)

please run patches through scripts/checkpatch.pl, it gives:

  total: 10 errors, 0 warnings, 42 lines checked

(please send a followup cleanup patch - i picked up your series and this 
is a minor cleanliness issue)

	Ingo

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

* Re: [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_*
  2007-12-02 13:21 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel
@ 2007-12-04 12:36   ` Ingo Molnar
  2007-12-04 12:38   ` Ingo Molnar
  1 sibling, 0 replies; 14+ messages in thread
From: Ingo Molnar @ 2007-12-04 12:36 UTC (permalink / raw)
  To: Joerg Roedel; +Cc: tglx, hpa, linux-kernel


* Joerg Roedel <joerg.roedel@amd.com> wrote:

> This patch defines the _PAGE_* paging attributes in pgtable_64.h in 
> terms of the former defined _PAGE_BIT_* values.

thanks, applied to x86.git.

	Ingo

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

* [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_*
  2007-12-02 13:21 [PATCH 0/3] x86_64: some minor paging cleanups Joerg Roedel
@ 2007-12-02 13:21 ` Joerg Roedel
  2007-12-04 12:36   ` Ingo Molnar
  2007-12-04 12:38   ` Ingo Molnar
  0 siblings, 2 replies; 14+ messages in thread
From: Joerg Roedel @ 2007-12-02 13:21 UTC (permalink / raw)
  To: tglx, mingo, hpa; +Cc: linux-kernel, Joerg Roedel

This patch defines the _PAGE_* paging attributes in pgtable_64.h in terms of
the former defined _PAGE_BIT_* values.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
---
 include/asm-x86/pgtable_64.h |   27 +++++++++++++++------------
 1 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h
index 9b0ff47..9d4f11d 100644
--- a/include/asm-x86/pgtable_64.h
+++ b/include/asm-x86/pgtable_64.h
@@ -150,19 +150,23 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long
 #define _PAGE_BIT_ACCESSED	5
 #define _PAGE_BIT_DIRTY		6
 #define _PAGE_BIT_PSE		7	/* 4 MB (or 2MB) page */
+#define _PAGE_BIT_FILE		6
 #define _PAGE_BIT_GLOBAL	8	/* Global TLB entry PPro+ */
 #define _PAGE_BIT_NX           63       /* No execute: only valid after cpuid check */
 
-#define _PAGE_PRESENT	0x001
-#define _PAGE_RW	0x002
-#define _PAGE_USER	0x004
-#define _PAGE_PWT	0x008
-#define _PAGE_PCD	0x010
-#define _PAGE_ACCESSED	0x020
-#define _PAGE_DIRTY	0x040
-#define _PAGE_PSE	0x080	/* 2MB page */
-#define _PAGE_FILE	0x040	/* nonlinear file mapping, saved PTE; unset:swap */
-#define _PAGE_GLOBAL	0x100	/* Global TLB entry */
+#define _PAGE_PRESENT	(_AC(1,UL)<<_PAGE_BIT_PRESENT)
+#define _PAGE_RW	(_AC(1,UL)<<_PAGE_BIT_RW)
+#define _PAGE_USER	(_AC(1,UL)<<_PAGE_BIT_USER)
+#define _PAGE_PWT	(_AC(1,UL)<<_PAGE_BIT_PWT)
+#define _PAGE_PCD	(_AC(1,UL)<<_PAGE_BIT_PCD)
+#define _PAGE_ACCESSED	(_AC(1,UL)<<_PAGE_BIT_ACCESSED)
+#define _PAGE_DIRTY	(_AC(1,UL)<<_PAGE_BIT_DIRTY)
+/* 2MB page */
+#define _PAGE_PSE	(_AC(1,UL)<<_PAGE_BIT_PSE)
+/* nonlinear file mapping, saved PTE; unset:swap */
+#define _PAGE_FILE	(_AC(1,UL)<<_PAGE_BIT_FILE)
+/* Global TLB entry */
+#define _PAGE_GLOBAL	(_AC(1,UL)<<_PAGE_BIT_GLOBAL)
 
 #define _PAGE_PROTNONE	0x080	/* If not present */
 #define _PAGE_NX        (_AC(1,UL)<<_PAGE_BIT_NX)
@@ -248,8 +252,7 @@ static inline unsigned long pmd_bad(pmd_t pmd)
 #define pte_present(x)	(pte_val(x) & (_PAGE_PRESENT | _PAGE_PROTNONE))
 #define pte_clear(mm,addr,xp)	do { set_pte_at(mm, addr, xp, __pte(0)); } while (0)
 
-#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))	/* FIXME: is this
-						   right? */
+#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))	/* FIXME: is this right? */
 #define pte_page(x)	pfn_to_page(pte_pfn(x))
 #define pte_pfn(x)  ((pte_val(x) & __PHYSICAL_MASK) >> PAGE_SHIFT)
 
-- 
1.5.2.5




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

end of thread, other threads:[~2007-12-05 12:30 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-12-04 15:23 [PATCH 0/3] x86_64: some minor paging cleanups Joerg Roedel
2007-12-04 15:23 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel
2007-12-04 18:20   ` Dave Hansen
2007-12-04 15:23 ` [PATCH 2/3] x86_64: use __PAGE_KERNEL* instead of _KERNPG_TABLE for 2MB PTEs in memory initialization Joerg Roedel
2007-12-04 15:23 ` [PATCH 3/3] x86_64: use __PAGE_KERNEL_EXEC in ioremap_64.c Joerg Roedel
  -- strict thread matches above, loose matches on Subject: below --
2007-12-02 13:21 [PATCH 0/3] x86_64: some minor paging cleanups Joerg Roedel
2007-12-02 13:21 ` [PATCH 1/3] x86_64: define all _PAGE_* in terms of _PAGE_BIT_* Joerg Roedel
2007-12-04 12:36   ` Ingo Molnar
2007-12-04 12:38   ` Ingo Molnar
2007-12-04 15:06     ` Joerg Roedel
2007-12-04 21:07       ` Ingo Molnar
2007-12-05 10:52         ` Joerg Roedel
2007-12-05 11:27           ` Ingo Molnar
2007-12-05 11:42             ` Joerg Roedel
2007-12-05 12:30               ` Ingo Molnar

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