| /linux/arch/arm64/mm/ |
| A D | context.c | 38 #define asid2idx(asid) ((asid) & ~ASID_MASK) argument 44 u32 asid; in get_cpu_asid_bits() local 54 asid = 8; in get_cpu_asid_bits() 57 asid = 16; in get_cpu_asid_bits() 60 return asid; in get_cpu_asid_bits() 107 u64 asid; in flush_context() local 121 if (asid == 0) in flush_context() 276 u64 asid; in arm64_mm_context_get() local 289 asid = 0; in arm64_mm_context_get() 313 asid |= 1; in arm64_mm_context_get() [all …]
|
| /linux/arch/arm/mm/ |
| A D | context.c | 56 u64 context_id, asid; in a15_erratum_get_cpumask() local 68 if (asid == 0) in a15_erratum_get_cpumask() 70 if (context_id == asid) in a15_erratum_get_cpumask() 139 u64 asid; in flush_context() local 152 if (asid == 0) in flush_context() 195 if (asid != 0) { in new_context() 209 asid &= ~ASID_MASK; in new_context() 231 __set_bit(asid, asid_map); in new_context() 232 cur_idx = asid; in new_context() 234 return asid | generation; in new_context() [all …]
|
| /linux/arch/csky/mm/ |
| A D | asid.c | 21 #define asid2idx(info, asid) (((asid) & ~ASID_MASK(info)) >> (info)->ctxt_shift) argument 27 u64 asid; in flush_context() local 41 if (asid == 0) in flush_context() 42 asid = reserved_asid(info, i); in flush_context() 44 reserved_asid(info, i) = asid; in flush_context() 86 if (asid != 0) { in new_context() 124 __set_bit(asid, info->map); in new_context() 125 cur_idx = asid; in new_context() 141 u64 asid; in asid_new_context() local 145 asid = atomic64_read(pasid); in asid_new_context() [all …]
|
| /linux/arch/xtensa/include/asm/ |
| A D | mmu_context.h | 72 unsigned long asid = cpu_asid_cache(cpu); in get_new_mmu_context() local 73 if ((++asid & ASID_MASK) == 0) { in get_new_mmu_context() 79 asid += ASID_USER_FIRST; in get_new_mmu_context() 81 cpu_asid_cache(cpu) = asid; in get_new_mmu_context() 82 mm->context.asid[cpu] = asid; in get_new_mmu_context() 93 unsigned long asid = mm->context.asid[cpu]; in get_mmu_context() local 95 if (asid == NO_CONTEXT || in get_mmu_context() 96 ((asid ^ cpu_asid_cache(cpu)) & ~ASID_MASK)) in get_mmu_context() 104 set_rasid_register(ASID_INSERT(mm->context.asid[cpu])); in activate_context() 120 mm->context.asid[cpu] = NO_CONTEXT; in init_new_context()
|
| /linux/arch/sh/mm/ |
| A D | tlbflush_32.c | 21 unsigned long asid; in local_flush_tlb_page() local 24 asid = cpu_asid(cpu, vma->vm_mm); in local_flush_tlb_page() 30 set_asid(asid); in local_flush_tlb_page() 32 local_flush_tlb_one(asid, page); in local_flush_tlb_page() 56 unsigned long asid; in local_flush_tlb_range() local 59 asid = cpu_asid(cpu, mm); in local_flush_tlb_range() 65 set_asid(asid); in local_flush_tlb_range() 89 unsigned long asid; in local_flush_tlb_kernel_range() local 92 asid = cpu_asid(cpu, &init_mm); in local_flush_tlb_kernel_range() 96 set_asid(asid); in local_flush_tlb_kernel_range() [all …]
|
| /linux/arch/sh/include/asm/ |
| A D | mmu_context_32.h | 6 static inline void set_asid(unsigned long asid) in set_asid() argument 8 __raw_writel(asid, MMU_PTEAEX); in set_asid() 16 static inline void set_asid(unsigned long asid) in set_asid() argument 25 : "r" (asid), "m" (__m(MMU_PTEH)), in set_asid() 31 unsigned long asid; in get_asid() local 34 : "=r" (asid) in get_asid() 36 asid &= MMU_CONTEXT_ASID_MASK; in get_asid() 37 return asid; in get_asid()
|
| A D | mmu_context.h | 57 unsigned long asid = asid_cache(cpu); in get_mmu_context() local 60 if (((cpu_context(cpu, mm) ^ asid) & MMU_CONTEXT_VERSION_MASK) == 0) in get_mmu_context() 65 if (!(++asid & MMU_CONTEXT_ASID_MASK)) { in get_mmu_context() 76 if (!asid) in get_mmu_context() 77 asid = MMU_CONTEXT_FIRST_VERSION; in get_mmu_context() 80 cpu_context(cpu, mm) = asid_cache(cpu) = asid; in get_mmu_context() 128 #define set_asid(asid) do { } while (0) argument 131 #define switch_and_save_asid(asid) (0) argument
|
| A D | tlbflush.h | 23 extern void local_flush_tlb_one(unsigned long asid, unsigned long page); 35 extern void flush_tlb_one(unsigned long asid, unsigned long page); 42 #define flush_tlb_one(asid, page) local_flush_tlb_one(asid, page) argument
|
| /linux/arch/x86/mm/ |
| A D | tlb.c | 111 static inline u16 kern_pcid(u16 asid) in kern_pcid() argument 141 return asid + 1; in kern_pcid() 147 static inline u16 user_pcid(u16 asid) in user_pcid() argument 149 u16 ret = kern_pcid(asid); in user_pcid() 161 VM_WARN_ON_ONCE(asid != 0); in build_cr3() 186 u16 asid; in clear_asid_other() local 197 for (asid = 0; asid < TLB_NR_DYN_ASIDS; asid++) { in clear_asid_other() 216 u16 asid; in choose_new_asid() local 227 for (asid = 0; asid < TLB_NR_DYN_ASIDS; asid++) { in choose_new_asid() 232 *new_asid = asid; in choose_new_asid() [all …]
|
| /linux/arch/riscv/mm/ |
| A D | tlbflush.c | 9 static inline void local_flush_tlb_all_asid(unsigned long asid) in local_flush_tlb_all_asid() argument 13 : "r" (asid) in local_flush_tlb_all_asid() 18 unsigned long asid) in local_flush_tlb_page_asid() argument 22 : "r" (addr), "r" (asid) in local_flush_tlb_page_asid() 46 unsigned long asid = atomic_long_read(&mm->context.id); in __sbi_tlb_flush_range() local 51 start, size, asid); in __sbi_tlb_flush_range() 53 local_flush_tlb_page_asid(start, asid); in __sbi_tlb_flush_range() 55 local_flush_tlb_all_asid(asid); in __sbi_tlb_flush_range()
|
| A D | context.c | 99 unsigned long asid, ver = atomic_long_read(¤t_version); in __new_context() local 126 asid = find_next_zero_bit(context_asid_map, num_asids, cur_idx); in __new_context() 127 if (asid != num_asids) in __new_context() 137 asid = find_next_zero_bit(context_asid_map, num_asids, 1); in __new_context() 140 __set_bit(asid, context_asid_map); in __new_context() 141 cur_idx = asid; in __new_context() 142 return asid | ver; in __new_context()
|
| /linux/arch/arm64/include/asm/ |
| A D | tlbflush.h | 57 #define __TLBI_VADDR(addr, asid) \ argument 61 __ta |= (unsigned long)(asid) << 48; \ 144 __ta |= (unsigned long)(asid) << 48; \ 248 unsigned long asid; in flush_tlb_mm() local 251 asid = __TLBI_VADDR(0, ASID(mm)); in flush_tlb_mm() 252 __tlbi(aside1is, asid); in flush_tlb_mm() 253 __tlbi_user(aside1is, asid); in flush_tlb_mm() 288 unsigned long asid, addr, pages; in __flush_tlb_range() local 308 asid = ASID(vma->vm_mm); in __flush_tlb_range() 331 addr = __TLBI_VADDR(start, asid); in __flush_tlb_range() [all …]
|
| /linux/drivers/misc/sgi-gru/ |
| A D | grumain.c | 100 if (asid >= limit) in gru_reset_asid_limit() 113 asid += ASID_INC; in gru_reset_asid_limit() 130 gru->gs_asid = asid; in gru_reset_asid_limit() 132 asid, limit); in gru_reset_asid_limit() 133 return asid; in gru_reset_asid_limit() 139 int asid; in gru_assign_asid() local 144 asid = gru_reset_asid_limit(gru, asid); in gru_assign_asid() 147 return asid; in gru_assign_asid() 230 int asid; in gru_load_mm_tracker() local 257 return asid; in gru_load_mm_tracker() [all …]
|
| A D | grutlbpurge.c | 152 int grupagesize, pagesize, pageshift, gid, asid; in gru_flush_tlb_range() local 169 asid = asids->mt_asid; in gru_flush_tlb_range() 170 if (asids->mt_ctxbitmap && asid) { in gru_flush_tlb_range() 172 asid = GRUASID(asid, start); in gru_flush_tlb_range() 175 gid, asid, start, grupagesize, num, asids->mt_ctxbitmap); in gru_flush_tlb_range() 177 tgh_invalidate(tgh, start, ~0, asid, grupagesize, 0, in gru_flush_tlb_range() 186 gid, asid, asids->mt_ctxbitmap, in gru_flush_tlb_range()
|
| A D | gruhandles.c | 141 int asid, int pagesize, int global, int n, in tgh_invalidate() argument 145 tgh->asid = asid; in tgh_invalidate() 158 unsigned long vaddr, int asid, int dirty, in tfh_write_only() argument 161 tfh->fillasid = asid; in tfh_write_only() 174 unsigned long vaddr, int asid, int dirty, in tfh_write_restart() argument 177 tfh->fillasid = asid; in tfh_write_restart()
|
| /linux/drivers/iommu/arm/arm-smmu-v3/ |
| A D | arm-smmu-v3-sva.c | 44 arm_smmu_share_asid(struct mm_struct *mm, u16 asid) in arm_smmu_share_asid() argument 52 cd = xa_load(&arm_smmu_asid_xa, asid); in arm_smmu_share_asid() 76 cd->asid = new_asid; in arm_smmu_share_asid() 85 arm_smmu_tlb_inv_asid(smmu, asid); in arm_smmu_share_asid() 87 xa_erase(&arm_smmu_asid_xa, asid); in arm_smmu_share_asid() 93 u16 asid; in arm_smmu_alloc_shared_cd() local 99 asid = arm64_mm_context_get(mm); in arm_smmu_alloc_shared_cd() 100 if (!asid) in arm_smmu_alloc_shared_cd() 112 ret = arm_smmu_share_asid(mm, asid); in arm_smmu_alloc_shared_cd() 157 cd->asid = asid; in arm_smmu_alloc_shared_cd() [all …]
|
| /linux/drivers/misc/habanalabs/common/ |
| A D | asid.c | 51 void hl_asid_free(struct hl_device *hdev, unsigned long asid) in hl_asid_free() argument 53 if (asid == HL_KERNEL_ASID_ID || asid >= hdev->asic_prop.max_asid) { in hl_asid_free() 54 dev_crit(hdev->dev, "Invalid ASID %lu", asid); in hl_asid_free() 58 clear_bit(asid, hdev->asid_bitmap); in hl_asid_free()
|
| A D | context.c | 94 if (ctx->asid != HL_KERNEL_ASID_ID) { in hl_ctx_fini() 95 dev_dbg(hdev->dev, "closing user context %d\n", ctx->asid); in hl_ctx_fini() 109 hl_asid_free(hdev, ctx->asid); in hl_ctx_fini() 205 ctx->asid = HL_KERNEL_ASID_ID; /* Kernel driver gets ASID 0 */ in hl_ctx_init() 219 ctx->asid = hl_asid_alloc(hdev); in hl_ctx_init() 220 if (!ctx->asid) { in hl_ctx_init() 248 dev_dbg(hdev->dev, "create user context %d\n", ctx->asid); in hl_ctx_init() 258 if (ctx->asid != HL_KERNEL_ASID_ID) in hl_ctx_init() 259 hl_asid_free(hdev, ctx->asid); in hl_ctx_init()
|
| /linux/drivers/misc/habanalabs/gaudi/ |
| A D | gaudi.c | 6713 asid); in gaudi_mmu_prepare() 6715 asid); in gaudi_mmu_prepare() 6717 asid); in gaudi_mmu_prepare() 6719 asid); in gaudi_mmu_prepare() 6721 asid); in gaudi_mmu_prepare() 6726 asid); in gaudi_mmu_prepare() 6728 asid); in gaudi_mmu_prepare() 6730 asid); in gaudi_mmu_prepare() 6732 asid); in gaudi_mmu_prepare() 6734 asid); in gaudi_mmu_prepare() [all …]
|
| /linux/arch/mips/lib/ |
| A D | r3k_dump_tlb.c | 31 unsigned int asid; in dump_tlb() local 35 asid = read_c0_entryhi() & asid_mask; in dump_tlb() 50 (entryhi & asid_mask) == asid)) { in dump_tlb() 69 write_c0_entryhi(asid); in dump_tlb()
|
| /linux/arch/csky/include/asm/ |
| A D | asid.h | 46 u64 asid, old_active_asid; in asid_check_context() local 48 asid = atomic64_read(pasid); in asid_check_context() 66 !((asid ^ atomic64_read(&info->generation)) >> info->bits) && in asid_check_context() 68 old_active_asid, asid)) in asid_check_context()
|
| A D | mmu_context.h | 17 #define cpu_asid(mm) (atomic64_read(&mm->context.asid) & ASID_MASK) 19 #define init_new_context(tsk,mm) ({ atomic64_set(&(mm)->context.asid, 0); 0; }) 32 setup_pgd(next->pgd, next->context.asid.counter); in switch_mm()
|
| /linux/arch/xtensa/mm/ |
| A D | tlb.c | 70 mm->context.asid[cpu] = NO_CONTEXT; in local_flush_tlb_mm() 74 mm->context.asid[cpu] = NO_CONTEXT; in local_flush_tlb_mm() 95 if (mm->context.asid[cpu] == NO_CONTEXT) in local_flush_tlb_range() 99 (unsigned long)mm->context.asid[cpu], start, end); in local_flush_tlb_range() 105 set_rasid_register(ASID_INSERT(mm->context.asid[cpu])); in local_flush_tlb_range() 133 if (mm->context.asid[cpu] == NO_CONTEXT) in local_flush_tlb_page() 139 set_rasid_register(ASID_INSERT(mm->context.asid[cpu])); in local_flush_tlb_page()
|
| /linux/drivers/iommu/arm/arm-smmu/ |
| A D | qcom_iommu.c | 97 return qcom_iommu->ctxs[asid - 1]; in to_ctx() 171 iova |= ctx->asid; in qcom_iommu_tlb_inv_range_nosync() 217 fsr, iova, fsynr, ctx->asid); in qcom_iommu_fault() 549 unsigned asid = args->args[0]; in qcom_iommu_of_xlate() local 568 if (WARN_ON(asid < 1) || in qcom_iommu_of_xlate() 569 WARN_ON(asid > qcom_iommu->num_ctxs)) { in qcom_iommu_of_xlate() 587 return iommu_fwspec_add_ids(dev, &asid, 1); in qcom_iommu_of_xlate() 711 ctx->asid = ret; in qcom_iommu_ctx_probe() 713 dev_dbg(dev, "found asid %u\n", ctx->asid); in qcom_iommu_ctx_probe() 715 qcom_iommu->ctxs[ctx->asid - 1] = ctx; in qcom_iommu_ctx_probe() [all …]
|
| /linux/arch/mips/mm/ |
| A D | context.c | 24 u64 asid; in get_new_mmu_context() local 34 asid = asid_cache(cpu); in get_new_mmu_context() 36 if (!((asid += cpu_asid_inc()) & cpu_asid_mask(&cpu_data[cpu]))) { in get_new_mmu_context() 42 set_cpu_context(cpu, mm, asid); in get_new_mmu_context() 43 asid_cache(cpu) = asid; in get_new_mmu_context()
|