aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-09-27 00:58:33 -0400
committerDavid S. Miller <davem@davemloft.net>2014-10-05 19:53:39 -0400
commit4397bed080598001e88f612deb8b080bb1cc2322 (patch)
treec649278e09119997cb28176bb5b090b8b881fc5c /arch/sparc/include
parentac55c768143aa34cc3789c4820cbb0809a76fd9c (diff)
sparc64: Define VA hole at run time, rather than at compile time.
Now that we use 4-level page tables, we can provide up to 53-bits of virtual address space to the user. Adjust the VA hole based upon the capabilities of the cpu type probed. 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.h15
1 files changed, 4 insertions, 11 deletions
diff --git a/arch/sparc/include/asm/page_64.h b/arch/sparc/include/asm/page_64.h
index 09ceb68e72b7..2211a8036bfa 100644
--- a/arch/sparc/include/asm/page_64.h
+++ b/arch/sparc/include/asm/page_64.h
@@ -102,21 +102,14 @@ typedef unsigned long pgprot_t;
102 102
103typedef pte_t *pgtable_t; 103typedef pte_t *pgtable_t;
104 104
105/* These two values define the virtual address space range in which we 105extern unsigned long sparc64_va_hole_top;
106 * must forbid 64-bit user processes from making mappings. It used to 106extern unsigned long sparc64_va_hole_bottom;
107 * represent precisely the virtual address space hole present in most
108 * early sparc64 chips including UltraSPARC-I. But now it also is
109 * further constrained by the limits of our page tables, which is
110 * 43-bits of virtual address.
111 */
112#define SPARC64_VA_HOLE_TOP _AC(0xfffffc0000000000,UL)
113#define SPARC64_VA_HOLE_BOTTOM _AC(0x0000040000000000,UL)
114 107
115/* The next two defines specify the actual exclusion region we 108/* The next two defines specify the actual exclusion region we
116 * enforce, wherein we use a 4GB red zone on each side of the VA hole. 109 * enforce, wherein we use a 4GB red zone on each side of the VA hole.
117 */ 110 */
118#define VA_EXCLUDE_START (SPARC64_VA_HOLE_BOTTOM - (1UL << 32UL)) 111#define VA_EXCLUDE_START (sparc64_va_hole_bottom - (1UL << 32UL))
119#define VA_EXCLUDE_END (SPARC64_VA_HOLE_TOP + (1UL << 32UL)) 112#define VA_EXCLUDE_END (sparc64_va_hole_top + (1UL << 32UL))
120 113
121#define TASK_UNMAPPED_BASE (test_thread_flag(TIF_32BIT) ? \ 114#define TASK_UNMAPPED_BASE (test_thread_flag(TIF_32BIT) ? \
122 _AC(0x0000000070000000,UL) : \ 115 _AC(0x0000000070000000,UL) : \