diff options
-rw-r--r-- | arch/powerpc/kernel/asm-offsets.c | 3 | ||||
-rw-r--r-- | arch/powerpc/mm/slb.c | 3 | ||||
-rw-r--r-- | arch/powerpc/mm/stab.c | 4 | ||||
-rw-r--r-- | include/asm-powerpc/mmu_context.h | 12 | ||||
-rw-r--r-- | include/asm-powerpc/paca.h | 3 |
5 files changed, 0 insertions, 25 deletions
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c index 8f85c5e8a55a..aa0486d552a3 100644 --- a/arch/powerpc/kernel/asm-offsets.c +++ b/arch/powerpc/kernel/asm-offsets.c | |||
@@ -122,9 +122,6 @@ int main(void) | |||
122 | DEFINE(PACASLBCACHE, offsetof(struct paca_struct, slb_cache)); | 122 | DEFINE(PACASLBCACHE, offsetof(struct paca_struct, slb_cache)); |
123 | DEFINE(PACASLBCACHEPTR, offsetof(struct paca_struct, slb_cache_ptr)); | 123 | DEFINE(PACASLBCACHEPTR, offsetof(struct paca_struct, slb_cache_ptr)); |
124 | DEFINE(PACACONTEXTID, offsetof(struct paca_struct, context.id)); | 124 | DEFINE(PACACONTEXTID, offsetof(struct paca_struct, context.id)); |
125 | #ifdef CONFIG_PPC_64K_PAGES | ||
126 | DEFINE(PACAPGDIR, offsetof(struct paca_struct, pgdir)); | ||
127 | #endif | ||
128 | #ifdef CONFIG_HUGETLB_PAGE | 125 | #ifdef CONFIG_HUGETLB_PAGE |
129 | DEFINE(PACALOWHTLBAREAS, offsetof(struct paca_struct, context.low_htlb_areas)); | 126 | DEFINE(PACALOWHTLBAREAS, offsetof(struct paca_struct, context.low_htlb_areas)); |
130 | DEFINE(PACAHIGHHTLBAREAS, offsetof(struct paca_struct, context.high_htlb_areas)); | 127 | DEFINE(PACAHIGHHTLBAREAS, offsetof(struct paca_struct, context.high_htlb_areas)); |
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c index ffc8ed4de62d..2cc61736feee 100644 --- a/arch/powerpc/mm/slb.c +++ b/arch/powerpc/mm/slb.c | |||
@@ -122,9 +122,6 @@ void switch_slb(struct task_struct *tsk, struct mm_struct *mm) | |||
122 | 122 | ||
123 | get_paca()->slb_cache_ptr = 0; | 123 | get_paca()->slb_cache_ptr = 0; |
124 | get_paca()->context = mm->context; | 124 | get_paca()->context = mm->context; |
125 | #ifdef CONFIG_PPC_64K_PAGES | ||
126 | get_paca()->pgdir = mm->pgd; | ||
127 | #endif /* CONFIG_PPC_64K_PAGES */ | ||
128 | 125 | ||
129 | /* | 126 | /* |
130 | * preload some userspace segments into the SLB. | 127 | * preload some userspace segments into the SLB. |
diff --git a/arch/powerpc/mm/stab.c b/arch/powerpc/mm/stab.c index 4a9291d9fef8..691320c90b78 100644 --- a/arch/powerpc/mm/stab.c +++ b/arch/powerpc/mm/stab.c | |||
@@ -200,10 +200,6 @@ void switch_stab(struct task_struct *tsk, struct mm_struct *mm) | |||
200 | 200 | ||
201 | __get_cpu_var(stab_cache_ptr) = 0; | 201 | __get_cpu_var(stab_cache_ptr) = 0; |
202 | 202 | ||
203 | #ifdef CONFIG_PPC_64K_PAGES | ||
204 | get_paca()->pgdir = mm->pgd; | ||
205 | #endif /* CONFIG_PPC_64K_PAGES */ | ||
206 | |||
207 | /* Now preload some entries for the new task */ | 203 | /* Now preload some entries for the new task */ |
208 | if (test_tsk_thread_flag(tsk, TIF_32BIT)) | 204 | if (test_tsk_thread_flag(tsk, TIF_32BIT)) |
209 | unmapped_base = TASK_UNMAPPED_BASE_USER32; | 205 | unmapped_base = TASK_UNMAPPED_BASE_USER32; |
diff --git a/include/asm-powerpc/mmu_context.h b/include/asm-powerpc/mmu_context.h index 1b8a25fd48f3..8c6b1a6d944f 100644 --- a/include/asm-powerpc/mmu_context.h +++ b/include/asm-powerpc/mmu_context.h | |||
@@ -20,16 +20,9 @@ | |||
20 | * 2 of the License, or (at your option) any later version. | 20 | * 2 of the License, or (at your option) any later version. |
21 | */ | 21 | */ |
22 | 22 | ||
23 | /* | ||
24 | * Getting into a kernel thread, there is no valid user segment, mark | ||
25 | * paca->pgdir NULL so that SLB miss on user addresses will fault | ||
26 | */ | ||
27 | static inline void enter_lazy_tlb(struct mm_struct *mm, | 23 | static inline void enter_lazy_tlb(struct mm_struct *mm, |
28 | struct task_struct *tsk) | 24 | struct task_struct *tsk) |
29 | { | 25 | { |
30 | #ifdef CONFIG_PPC_64K_PAGES | ||
31 | get_paca()->pgdir = NULL; | ||
32 | #endif /* CONFIG_PPC_64K_PAGES */ | ||
33 | } | 26 | } |
34 | 27 | ||
35 | #define NO_CONTEXT 0 | 28 | #define NO_CONTEXT 0 |
@@ -52,13 +45,8 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, | |||
52 | cpu_set(smp_processor_id(), next->cpu_vm_mask); | 45 | cpu_set(smp_processor_id(), next->cpu_vm_mask); |
53 | 46 | ||
54 | /* No need to flush userspace segments if the mm doesnt change */ | 47 | /* No need to flush userspace segments if the mm doesnt change */ |
55 | #ifdef CONFIG_PPC_64K_PAGES | ||
56 | if (prev == next && get_paca()->pgdir == next->pgd) | ||
57 | return; | ||
58 | #else | ||
59 | if (prev == next) | 48 | if (prev == next) |
60 | return; | 49 | return; |
61 | #endif /* CONFIG_PPC_64K_PAGES */ | ||
62 | 50 | ||
63 | #ifdef CONFIG_ALTIVEC | 51 | #ifdef CONFIG_ALTIVEC |
64 | if (cpu_has_feature(CPU_FTR_ALTIVEC)) | 52 | if (cpu_has_feature(CPU_FTR_ALTIVEC)) |
diff --git a/include/asm-powerpc/paca.h b/include/asm-powerpc/paca.h index 706325f99a84..c17fd54d995b 100644 --- a/include/asm-powerpc/paca.h +++ b/include/asm-powerpc/paca.h | |||
@@ -79,9 +79,6 @@ struct paca_struct { | |||
79 | u64 exmc[10]; /* used for machine checks */ | 79 | u64 exmc[10]; /* used for machine checks */ |
80 | u64 exslb[10]; /* used for SLB/segment table misses | 80 | u64 exslb[10]; /* used for SLB/segment table misses |
81 | * on the linear mapping */ | 81 | * on the linear mapping */ |
82 | #ifdef CONFIG_PPC_64K_PAGES | ||
83 | pgd_t *pgdir; | ||
84 | #endif /* CONFIG_PPC_64K_PAGES */ | ||
85 | 82 | ||
86 | mm_context_t context; | 83 | mm_context_t context; |
87 | u16 slb_cache[SLB_CACHE_ENTRIES]; | 84 | u16 slb_cache[SLB_CACHE_ENTRIES]; |