aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-09-25 00:49:29 -0400
committerDavid S. Miller <davem@davemloft.net>2014-10-05 19:53:40 -0400
commit7c0fa0f24bb76ce3d67be7f737b799846a04570f (patch)
tree5383bc77f280dc29c5cc422cae89283c6fcb8690 /arch/sparc/include
parentc06240c7f5c39c83dfd7849c0770775562441b96 (diff)
sparc64: Increase MAX_PHYS_ADDRESS_BITS to 53.
Make sure, at compile time, that the kernel can properly support whatever MAX_PHYS_ADDRESS_BITS is defined to. On M7 chips, use a max_phys_bits value of 49. Based upon a patch by Bob Picco. Signed-off-by: David S. Miller <davem@davemloft.net> Acked-by: Bob Picco <bob.picco@oracle.com>
Diffstat (limited to 'arch/sparc/include')
-rw-r--r--arch/sparc/include/asm/page_64.h8
-rw-r--r--arch/sparc/include/asm/pgtable_64.h4
2 files changed, 8 insertions, 4 deletions
diff --git a/arch/sparc/include/asm/page_64.h b/arch/sparc/include/asm/page_64.h
index 732ba178a289..6784a3382826 100644
--- a/arch/sparc/include/asm/page_64.h
+++ b/arch/sparc/include/asm/page_64.h
@@ -122,11 +122,11 @@ extern unsigned long PAGE_OFFSET;
122 122
123#endif /* !(__ASSEMBLY__) */ 123#endif /* !(__ASSEMBLY__) */
124 124
125/* The maximum number of physical memory address bits we support, this 125/* The maximum number of physical memory address bits we support. The
126 * is used to size various tables used to manage kernel TLB misses and 126 * largest value we can support is whatever "KPGD_SHIFT + KPTE_BITS"
127 * also the sparsemem code. 127 * evaluates to.
128 */ 128 */
129#define MAX_PHYS_ADDRESS_BITS 47 129#define MAX_PHYS_ADDRESS_BITS 53
130 130
131#define ILOG2_4MB 22 131#define ILOG2_4MB 22
132#define ILOG2_256MB 28 132#define ILOG2_256MB 28
diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h
index a305b22ab581..0552957f6ddc 100644
--- a/arch/sparc/include/asm/pgtable_64.h
+++ b/arch/sparc/include/asm/pgtable_64.h
@@ -67,6 +67,10 @@
67#define PGDIR_MASK (~(PGDIR_SIZE-1)) 67#define PGDIR_MASK (~(PGDIR_SIZE-1))
68#define PGDIR_BITS (PAGE_SHIFT - 3) 68#define PGDIR_BITS (PAGE_SHIFT - 3)
69 69
70#if (MAX_PHYS_ADDRESS_BITS > PGDIR_SHIFT + PGDIR_BITS)
71#error MAX_PHYS_ADDRESS_BITS exceeds what kernel page tables can support
72#endif
73
70#if (PGDIR_SHIFT + PGDIR_BITS) != 53 74#if (PGDIR_SHIFT + PGDIR_BITS) != 53
71#error Page table parameters do not cover virtual address space properly. 75#error Page table parameters do not cover virtual address space properly.
72#endif 76#endif