diff options
Diffstat (limited to 'arch/powerpc/kernel/process.c')
-rw-r--r-- | arch/powerpc/kernel/process.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index 6e2f03566b0d..84f000a45e36 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
@@ -219,22 +219,26 @@ void discard_lazy_cpu_state(void) | |||
219 | } | 219 | } |
220 | #endif /* CONFIG_SMP */ | 220 | #endif /* CONFIG_SMP */ |
221 | 221 | ||
222 | #ifdef CONFIG_PPC_MERGE /* XXX for now */ | ||
223 | int set_dabr(unsigned long dabr) | 222 | int set_dabr(unsigned long dabr) |
224 | { | 223 | { |
224 | #ifdef CONFIG_PPC_MERGE /* XXX for now */ | ||
225 | if (ppc_md.set_dabr) | 225 | if (ppc_md.set_dabr) |
226 | return ppc_md.set_dabr(dabr); | 226 | return ppc_md.set_dabr(dabr); |
227 | #endif | ||
227 | 228 | ||
229 | /* XXX should we have a CPU_FTR_HAS_DABR ? */ | ||
230 | #if defined(CONFIG_PPC64) || defined(CONFIG_6xx) | ||
228 | mtspr(SPRN_DABR, dabr); | 231 | mtspr(SPRN_DABR, dabr); |
232 | #endif | ||
229 | return 0; | 233 | return 0; |
230 | } | 234 | } |
231 | #endif | ||
232 | 235 | ||
233 | #ifdef CONFIG_PPC64 | 236 | #ifdef CONFIG_PPC64 |
234 | DEFINE_PER_CPU(struct cpu_usage, cpu_usage_array); | 237 | DEFINE_PER_CPU(struct cpu_usage, cpu_usage_array); |
235 | static DEFINE_PER_CPU(unsigned long, current_dabr); | ||
236 | #endif | 238 | #endif |
237 | 239 | ||
240 | static DEFINE_PER_CPU(unsigned long, current_dabr); | ||
241 | |||
238 | struct task_struct *__switch_to(struct task_struct *prev, | 242 | struct task_struct *__switch_to(struct task_struct *prev, |
239 | struct task_struct *new) | 243 | struct task_struct *new) |
240 | { | 244 | { |
@@ -299,12 +303,10 @@ struct task_struct *__switch_to(struct task_struct *prev, | |||
299 | 303 | ||
300 | #endif /* CONFIG_SMP */ | 304 | #endif /* CONFIG_SMP */ |
301 | 305 | ||
302 | #ifdef CONFIG_PPC64 /* for now */ | ||
303 | if (unlikely(__get_cpu_var(current_dabr) != new->thread.dabr)) { | 306 | if (unlikely(__get_cpu_var(current_dabr) != new->thread.dabr)) { |
304 | set_dabr(new->thread.dabr); | 307 | set_dabr(new->thread.dabr); |
305 | __get_cpu_var(current_dabr) = new->thread.dabr; | 308 | __get_cpu_var(current_dabr) = new->thread.dabr; |
306 | } | 309 | } |
307 | #endif /* CONFIG_PPC64 */ | ||
308 | 310 | ||
309 | new_thread = &new->thread; | 311 | new_thread = &new->thread; |
310 | old_thread = ¤t->thread; | 312 | old_thread = ¤t->thread; |
@@ -473,12 +475,10 @@ void flush_thread(void) | |||
473 | 475 | ||
474 | discard_lazy_cpu_state(); | 476 | discard_lazy_cpu_state(); |
475 | 477 | ||
476 | #ifdef CONFIG_PPC64 /* for now */ | ||
477 | if (current->thread.dabr) { | 478 | if (current->thread.dabr) { |
478 | current->thread.dabr = 0; | 479 | current->thread.dabr = 0; |
479 | set_dabr(0); | 480 | set_dabr(0); |
480 | } | 481 | } |
481 | #endif | ||
482 | } | 482 | } |
483 | 483 | ||
484 | void | 484 | void |