|
@@ -207,11 +207,11 @@ void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk)
|
|
|
if ((mm->context.id ^ atomic64_read(&asid_generation)) >> ASID_BITS)
|
|
|
new_context(mm, cpu);
|
|
|
|
|
|
- atomic64_set(&per_cpu(active_asids, cpu), mm->context.id);
|
|
|
- cpumask_set_cpu(cpu, mm_cpumask(mm));
|
|
|
-
|
|
|
if (cpumask_test_and_clear_cpu(cpu, &tlb_flush_pending))
|
|
|
local_flush_tlb_all();
|
|
|
+
|
|
|
+ atomic64_set(&per_cpu(active_asids, cpu), mm->context.id);
|
|
|
+ cpumask_set_cpu(cpu, mm_cpumask(mm));
|
|
|
raw_spin_unlock_irqrestore(&cpu_asid_lock, flags);
|
|
|
|
|
|
switch_mm_fastpath:
|