diff options
author | David S. Miller <davem@davemloft.net> | 2014-09-25 00:49:29 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-10-05 19:53:40 -0400 |
commit | 7c0fa0f24bb76ce3d67be7f737b799846a04570f (patch) | |
tree | 5383bc77f280dc29c5cc422cae89283c6fcb8690 /arch/sparc/include | |
parent | c06240c7f5c39c83dfd7849c0770775562441b96 (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.h | 8 | ||||
-rw-r--r-- | arch/sparc/include/asm/pgtable_64.h | 4 |
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 |