Lines Matching refs:asid

59 	u64 context_id, asid;  in a15_erratum_get_cpumask()  local
70 asid = per_cpu(active_asids, cpu).counter; in a15_erratum_get_cpumask()
71 if (asid == 0) in a15_erratum_get_cpumask()
72 asid = per_cpu(reserved_asids, cpu); in a15_erratum_get_cpumask()
73 if (context_id == asid) in a15_erratum_get_cpumask()
142 u64 asid; in flush_context() local
147 asid = atomic64_xchg(&per_cpu(active_asids, i), 0); in flush_context()
155 if (asid == 0) in flush_context()
156 asid = per_cpu(reserved_asids, i); in flush_context()
157 __set_bit(asid & ~ASID_MASK, asid_map); in flush_context()
158 per_cpu(reserved_asids, i) = asid; in flush_context()
168 static bool check_update_reserved_asid(u64 asid, u64 newasid) in check_update_reserved_asid() argument
183 if (per_cpu(reserved_asids, cpu) == asid) { in check_update_reserved_asid()
195 u64 asid = atomic64_read(&mm->context.id); in new_context() local
198 if (asid != 0) { in new_context()
199 u64 newasid = generation | (asid & ~ASID_MASK); in new_context()
205 if (check_update_reserved_asid(asid, newasid)) in new_context()
212 asid &= ~ASID_MASK; in new_context()
213 if (!__test_and_set_bit(asid, asid_map)) in new_context()
226 asid = find_next_zero_bit(asid_map, NUM_USER_ASIDS, cur_idx); in new_context()
227 if (asid == NUM_USER_ASIDS) { in new_context()
231 asid = find_next_zero_bit(asid_map, NUM_USER_ASIDS, 1); in new_context()
234 __set_bit(asid, asid_map); in new_context()
235 cur_idx = asid; in new_context()
237 return asid | generation; in new_context()
244 u64 asid; in check_and_switch_context() local
256 asid = atomic64_read(&mm->context.id); in check_and_switch_context()
257 if (!((asid ^ atomic64_read(&asid_generation)) >> ASID_BITS) in check_and_switch_context()
258 && atomic64_xchg(&per_cpu(active_asids, cpu), asid)) in check_and_switch_context()
263 asid = atomic64_read(&mm->context.id); in check_and_switch_context()
264 if ((asid ^ atomic64_read(&asid_generation)) >> ASID_BITS) { in check_and_switch_context()
265 asid = new_context(mm, cpu); in check_and_switch_context()
266 atomic64_set(&mm->context.id, asid); in check_and_switch_context()
274 atomic64_set(&per_cpu(active_asids, cpu), asid); in check_and_switch_context()