|
@@ -93,9 +93,22 @@ typedef unsigned long pgprot_t;
|
|
|
|
|
|
typedef pte_t *pgtable_t;
|
|
|
|
|
|
+/* These two values define the virtual address space range in which we
|
|
|
+ * must forbid 64-bit user processes from making mappings. It
|
|
|
+ * represents the virtual address space hole present in most early
|
|
|
+ * sparc64 chips including UltraSPARC-I. The next two defines specify
|
|
|
+ * the actual exclusion region we enforce, wherein we use a 4GB red
|
|
|
+ * zone on each side of the VA hole.
|
|
|
+ */
|
|
|
+#define SPARC64_VA_HOLE_TOP _AC(0xfffff80000000000,UL)
|
|
|
+#define SPARC64_VA_HOLE_BOTTOM _AC(0x0000080000000000,UL)
|
|
|
+
|
|
|
+#define VA_EXCLUDE_START (SPARC64_VA_HOLE_BOTTOM - (1UL << 32UL))
|
|
|
+#define VA_EXCLUDE_END (SPARC64_VA_HOLE_TOP + (1UL << 32UL))
|
|
|
+
|
|
|
#define TASK_UNMAPPED_BASE (test_thread_flag(TIF_32BIT) ? \
|
|
|
- (_AC(0x0000000070000000,UL)) : \
|
|
|
- (_AC(0xfffff80000000000,UL) + (1UL << 32UL)))
|
|
|
+ _AC(0x0000000070000000,UL) : \
|
|
|
+ VA_EXCLUDE_END)
|
|
|
|
|
|
#include <asm-generic/memory_model.h>
|
|
|
|