|
@@ -212,8 +212,10 @@ void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk)
|
|
|
atomic64_set(&mm->context.id, asid);
|
|
atomic64_set(&mm->context.id, asid);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (cpumask_test_and_clear_cpu(cpu, &tlb_flush_pending))
|
|
|
|
|
|
|
+ if (cpumask_test_and_clear_cpu(cpu, &tlb_flush_pending)) {
|
|
|
|
|
+ local_flush_bp_all();
|
|
|
local_flush_tlb_all();
|
|
local_flush_tlb_all();
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
atomic64_set(&per_cpu(active_asids, cpu), asid);
|
|
atomic64_set(&per_cpu(active_asids, cpu), asid);
|
|
|
cpumask_set_cpu(cpu, mm_cpumask(mm));
|
|
cpumask_set_cpu(cpu, mm_cpumask(mm));
|