aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-ia64/mmu_context.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-ia64/mmu_context.h')
-rw-r--r--include/asm-ia64/mmu_context.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/asm-ia64/mmu_context.h b/include/asm-ia64/mmu_context.h
index e3e5fededb04..ab60a6a26911 100644
--- a/include/asm-ia64/mmu_context.h
+++ b/include/asm-ia64/mmu_context.h
@@ -19,6 +19,7 @@
19 19
20#define ia64_rid(ctx,addr) (((ctx) << 3) | (addr >> 61)) 20#define ia64_rid(ctx,addr) (((ctx) << 3) | (addr >> 61))
21 21
22# include <asm/page.h>
22# ifndef __ASSEMBLY__ 23# ifndef __ASSEMBLY__
23 24
24#include <linux/compiler.h> 25#include <linux/compiler.h>
@@ -110,7 +111,7 @@ reload_context (mm_context_t context)
110 unsigned long rid_incr = 0; 111 unsigned long rid_incr = 0;
111 unsigned long rr0, rr1, rr2, rr3, rr4, old_rr4; 112 unsigned long rr0, rr1, rr2, rr3, rr4, old_rr4;
112 113
113 old_rr4 = ia64_get_rr(0x8000000000000000UL); 114 old_rr4 = ia64_get_rr(RGN_BASE(RGN_HPAGE));
114 rid = context << 3; /* make space for encoding the region number */ 115 rid = context << 3; /* make space for encoding the region number */
115 rid_incr = 1 << 8; 116 rid_incr = 1 << 8;
116 117
@@ -122,6 +123,10 @@ reload_context (mm_context_t context)
122 rr4 = rr0 + 4*rid_incr; 123 rr4 = rr0 + 4*rid_incr;
123#ifdef CONFIG_HUGETLB_PAGE 124#ifdef CONFIG_HUGETLB_PAGE
124 rr4 = (rr4 & (~(0xfcUL))) | (old_rr4 & 0xfc); 125 rr4 = (rr4 & (~(0xfcUL))) | (old_rr4 & 0xfc);
126
127# if RGN_HPAGE != 4
128# error "reload_context assumes RGN_HPAGE is 4"
129# endif
125#endif 130#endif
126 131
127 ia64_set_rr(0x0000000000000000UL, rr0); 132 ia64_set_rr(0x0000000000000000UL, rr0);