asid_cache
DECLARE_PER_CPU(unsigned int, asid_cache);
#define asid_cpu(cpu) per_cpu(asid_cache, cpu)
DEFINE_PER_CPU(unsigned int, asid_cache) = MM_CTXT_FIRST_CYCLE;
unsigned long asid_cache;
u64 asid_cache;
#define asid_cache(cpu) (cpu_data[cpu].asid_cache)
if ((cpu_context(cpu, mm) ^ asid_cache(cpu)) & asid_version_mask(cpu))
u64 asid = asid_cache(cpu);
cpu_context(cpu, mm) = asid_cache(cpu) = asid;
if (!cpu_data[cpu].asid_cache)
cpu_data[cpu].asid_cache = asid_first_version(cpu);
u64 asid_cache;
#define asid_cache(cpu) (cpu_data[cpu].asid_cache)
cpu_data[cpu].asid_cache = asid_first_version(cpu);
cpu_data[cpu].asid_cache = 0;
else if (!cpu_data[cpu].asid_cache)
cpu_data[cpu].asid_cache = asid_first_version(cpu);
old_active_mmid = READ_ONCE(cpu_data[cpu].asid_cache);
!cmpxchg_relaxed(&cpu_data[cpu].asid_cache, old_active_mmid, ctx)) {
WRITE_ONCE(cpu_data[cpu].asid_cache, ctx);
asid = asid_cache(cpu);
asid_cache(cpu) = asid;
if (!asid_versions_eq(cpu, cpu_context(cpu, mm), asid_cache(cpu)))
mmid = xchg_relaxed(&cpu_data[cpu].asid_cache, 0);
if (asid_cache(cpu) == NO_CONTEXT)
asid_cache(cpu) = MMU_CONTEXT_FIRST_VERSION;
set_asid(asid_cache(cpu) & MMU_CONTEXT_ASID_MASK);
#define asid_cache(cpu) (cpu_data[cpu].asid_cache)
unsigned long asid = asid_cache(cpu);
cpu_context(cpu, mm) = asid_cache(cpu) = asid;
unsigned long asid_cache;
current_cpu_data.asid_cache = NO_CONTEXT;
DECLARE_PER_CPU(unsigned long, asid_cache);
#define cpu_asid_cache(cpu) per_cpu(asid_cache, cpu)
DEFINE_PER_CPU(unsigned long, asid_cache) = ASID_USER_FIRST;