X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-ppc64%2Fmmu_context.h;h=37f6ea055bf31e5a02d685d1d1dbbb83d924eb4b;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=bfce357056d71cc81801d6991f1d0a98c1edfb3e;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/include/asm-ppc64/mmu_context.h b/include/asm-ppc64/mmu_context.h index bfce35705..37f6ea055 100644 --- a/include/asm-ppc64/mmu_context.h +++ b/include/asm-ppc64/mmu_context.h @@ -51,14 +51,6 @@ extern void switch_slb(struct task_struct *tsk, struct mm_struct *mm); static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, struct task_struct *tsk) { -#ifdef CONFIG_ALTIVEC - asm volatile ( - BEGIN_FTR_SECTION - "dssall;\n" - END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) - : : ); -#endif /* CONFIG_ALTIVEC */ - if (!cpu_isset(smp_processor_id(), next->cpu_vm_mask)) cpu_set(smp_processor_id(), next->cpu_vm_mask); @@ -66,6 +58,11 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, if (prev == next) return; +#ifdef CONFIG_ALTIVEC + if (cur_cpu_spec->cpu_features & CPU_FTR_ALTIVEC) + asm volatile ("dssall"); +#endif /* CONFIG_ALTIVEC */ + if (cur_cpu_spec->cpu_features & CPU_FTR_SLB) switch_slb(tsk, next); else