ARM: 6944/1: mm: allow ASID 0 to be allocated to tasks
Now that ASID 0 is no longer used as a reserved value, allow it to be allocated to tasks. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
52af9c6cd8
commit
45b95235b0
|
@ -94,7 +94,7 @@ static void reset_context(void *info)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
smp_rmb();
|
smp_rmb();
|
||||||
asid = cpu_last_asid + cpu + 1;
|
asid = cpu_last_asid + cpu;
|
||||||
|
|
||||||
flush_context();
|
flush_context();
|
||||||
set_mm_context(mm, asid);
|
set_mm_context(mm, asid);
|
||||||
|
@ -144,13 +144,13 @@ void __new_context(struct mm_struct *mm)
|
||||||
* to start a new version and flush the TLB.
|
* to start a new version and flush the TLB.
|
||||||
*/
|
*/
|
||||||
if (unlikely((asid & ~ASID_MASK) == 0)) {
|
if (unlikely((asid & ~ASID_MASK) == 0)) {
|
||||||
asid = cpu_last_asid + smp_processor_id() + 1;
|
asid = cpu_last_asid + smp_processor_id();
|
||||||
flush_context();
|
flush_context();
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
smp_wmb();
|
smp_wmb();
|
||||||
smp_call_function(reset_context, NULL, 1);
|
smp_call_function(reset_context, NULL, 1);
|
||||||
#endif
|
#endif
|
||||||
cpu_last_asid += NR_CPUS;
|
cpu_last_asid += NR_CPUS - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
set_mm_context(mm, asid);
|
set_mm_context(mm, asid);
|
||||||
|
|
Loading…
Reference in New Issue