Lines Matching defs:mmid
66 u64 mmid;
76 mmid = xchg_relaxed(&cpu_data[cpu].asid_cache, 0);
85 if (mmid == 0)
86 mmid = per_cpu(reserved_mmids, cpu);
88 __set_bit(mmid & cpu_asid_mask(&cpu_data[cpu]), mmid_map);
89 per_cpu(reserved_mmids, cpu) = mmid;
99 static bool check_update_reserved_mmid(u64 mmid, u64 newmmid)
115 if (per_cpu(reserved_mmids, cpu) == mmid) {
127 u64 mmid, version, mmid_mask;
129 mmid = cpu_context(0, mm);
133 if (!asid_versions_eq(0, mmid, 0)) {
134 u64 newmmid = version | (mmid & mmid_mask);
140 if (check_update_reserved_mmid(mmid, newmmid)) {
141 mmid = newmmid;
149 if (!__test_and_set_bit(mmid & mmid_mask, mmid_map)) {
150 mmid = newmmid;
156 mmid = find_next_zero_bit(mmid_map, num_mmids, cur_idx);
157 if (mmid != num_mmids)
168 mmid = find_first_zero_bit(mmid_map, num_mmids);
171 __set_bit(mmid, mmid_map);
172 cur_idx = mmid;
173 mmid |= version;
175 set_cpu_context(0, mm, mmid);
176 return mmid;