MIPS: mm: Add set_cpu_context() for ASID assignments
When we gain MMID support we'll be storing MMIDs as atomic64_t values and accessing them via atomic64_* functions. This necessitates that we don't use cpu_context() as the left hand side of an assignment, ie. as a modifiable lvalue. In preparation for this introduce a new set_cpu_context() function & replace all assignments with cpu_context() on their left hand side with an equivalent call to set_cpu_context(). To enforce that cpu_context() should not be used for assignments, we rewrite it as a static inline function. Signed-off-by: Paul Burton <paul.burton@mips.com> Cc: linux-mips@vger.kernel.org
This commit is contained in:
@@ -537,7 +537,7 @@ void flush_tlb_mm(struct mm_struct *mm)
|
||||
|
||||
for_each_online_cpu(cpu) {
|
||||
if (cpu != smp_processor_id() && cpu_context(cpu, mm))
|
||||
cpu_context(cpu, mm) = 0;
|
||||
set_cpu_context(cpu, mm, 0);
|
||||
}
|
||||
}
|
||||
drop_mmu_context(mm);
|
||||
@@ -583,7 +583,7 @@ void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned l
|
||||
* mm has been completely unused by that CPU.
|
||||
*/
|
||||
if (cpu != smp_processor_id() && cpu_context(cpu, mm))
|
||||
cpu_context(cpu, mm) = !exec;
|
||||
set_cpu_context(cpu, mm, !exec);
|
||||
}
|
||||
}
|
||||
local_flush_tlb_range(vma, start, end);
|
||||
@@ -635,7 +635,7 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
|
||||
* by that CPU.
|
||||
*/
|
||||
if (cpu != smp_processor_id() && cpu_context(cpu, vma->vm_mm))
|
||||
cpu_context(cpu, vma->vm_mm) = 1;
|
||||
set_cpu_context(cpu, vma->vm_mm, 1);
|
||||
}
|
||||
}
|
||||
local_flush_tlb_page(vma, page);
|
||||
|
Reference in New Issue
Block a user