diff options
Diffstat (limited to 'arch/ppc64/mm/hugetlbpage.c')
-rw-r--r-- | arch/ppc64/mm/hugetlbpage.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/ppc64/mm/hugetlbpage.c b/arch/ppc64/mm/hugetlbpage.c index e7833c80eb68..338771ec70d7 100644 --- a/arch/ppc64/mm/hugetlbpage.c +++ b/arch/ppc64/mm/hugetlbpage.c | |||
@@ -144,7 +144,8 @@ static void flush_low_segments(void *parm) | |||
144 | for (i = 0; i < NUM_LOW_AREAS; i++) { | 144 | for (i = 0; i < NUM_LOW_AREAS; i++) { |
145 | if (! (areas & (1U << i))) | 145 | if (! (areas & (1U << i))) |
146 | continue; | 146 | continue; |
147 | asm volatile("slbie %0" : : "r" (i << SID_SHIFT)); | 147 | asm volatile("slbie %0" |
148 | : : "r" ((i << SID_SHIFT) | SLBIE_C)); | ||
148 | } | 149 | } |
149 | 150 | ||
150 | asm volatile("isync" : : : "memory"); | 151 | asm volatile("isync" : : : "memory"); |
@@ -164,7 +165,8 @@ static void flush_high_segments(void *parm) | |||
164 | continue; | 165 | continue; |
165 | for (j = 0; j < (1UL << (HTLB_AREA_SHIFT-SID_SHIFT)); j++) | 166 | for (j = 0; j < (1UL << (HTLB_AREA_SHIFT-SID_SHIFT)); j++) |
166 | asm volatile("slbie %0" | 167 | asm volatile("slbie %0" |
167 | :: "r" ((i << HTLB_AREA_SHIFT) + (j << SID_SHIFT))); | 168 | :: "r" (((i << HTLB_AREA_SHIFT) |
169 | + (j << SID_SHIFT)) | SLBIE_C)); | ||
168 | } | 170 | } |
169 | 171 | ||
170 | asm volatile("isync" : : : "memory"); | 172 | asm volatile("isync" : : : "memory"); |