[parisc-linux] Re: [parisc-linux-cvs] linux-2.6 jejb

James Bottomley James.Bottomley at steeleye.com
Wed May 5 14:50:43 MDT 2004


On Wed, 2004-05-05 at 15:48, James Bottomley wrote:
> CVSROOT:	/var/cvs
> Module name:	linux-2.6
> Changes by:	jejb	04/05/05 14:48:11
> 
> Modified files:
> 	.              : Makefile 
> 	include/asm-parisc: page.h pgtable.h 
> 
> Log message:
> Move to 8 byte Page Table Entries for 32 bit kernels.  This allows us
> to recover sixteen flag bits (the sixteen bits at the top of the pte for
> 64 bit - 48 address bits is pretty unlikely to be hit soon) on both 32
> and 64 bits.

===== include/asm-parisc/page.h 1.10 vs edited =====
--- 1.10/include/asm-parisc/page.h	Mon May  3 14:40:20 2004
+++ edited/include/asm-parisc/page.h	Wed May  5 10:12:19 2004
@@ -40,7 +40,14 @@
 /*
  * These are used to make use of C type-checking..
  */
+#ifdef __LP64__
 typedef struct { unsigned long pte; } pte_t;
+#else
+typedef struct {
+	unsigned long pte;
+	unsigned long flags;
+} pte_t;
+#endif
 /* NOTE: even on 64 bits, these entries are __u32 because we allocate
  * the pmd and pgd in ZONE_DMA (i.e. under 4GB) */
 typedef struct { __u32 pmd; } pmd_t;
@@ -48,6 +55,11 @@
 typedef struct { unsigned long pgprot; } pgprot_t;
 
 #define pte_val(x)	((x).pte)
+#ifdef __LP64__
+#define pte_flags(x)	#error
+#else
+#define pte_flags(x)	((x).flags)
+#endif
 #define pmd_val(x)	((x).pmd)
 #define pgd_val(x)	((x).pgd)
 #define pgprot_val(x)	((x).pgprot)
@@ -95,7 +107,7 @@
 #define BITS_PER_PMD_ENTRY	2
 #define BITS_PER_PGD_ENTRY	2
 #else
-#define BITS_PER_PTE_ENTRY	2
+#define BITS_PER_PTE_ENTRY	3
 #define BITS_PER_PMD_ENTRY	2
 #define BITS_PER_PGD_ENTRY	BITS_PER_PMD_ENTRY
 #endif
===== include/asm-parisc/pgtable.h 1.21 vs edited =====
--- 1.21/include/asm-parisc/pgtable.h	Sun May  2 05:20:20 2004
+++ edited/include/asm-parisc/pgtable.h	Wed May  5 12:13:18 2004
@@ -70,8 +70,8 @@
 #define PGD_ALLOC_ORDER	2 /* first pgd contains pmd */
 #else
 #define PT_NLEVELS	2
-#define PT_INITIAL	2 /* Number of initial page tables */
-#define PGD_ORDER	0 /* Number of pages per pgd */
+#define PT_INITIAL	4 /* Number of initial page tables */
+#define PGD_ORDER	1 /* Number of pages per pgd */
 #define PGD_ALLOC_ORDER	PGD_ORDER
 #endif
 



More information about the parisc-linux mailing list