diff options
Diffstat (limited to 'include/asm-ia64/mmu_context.h')
-rw-r--r-- | include/asm-ia64/mmu_context.h | 7 |
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); |