cntx2asid
unsigned long newcntx = ver | cntx2asid(cntx);
if (!__test_and_set_bit(cntx2asid(cntx), context_asid_map))
(cntx2asid(cntx) << SATP_ASID_SHIFT) |
__set_bit(cntx2asid(cntx), context_asid_map);
return mm ? cntx2asid(atomic_long_read(&mm->context.id)) : FLUSH_TLB_NO_ASID;