| /linux-6.15/arch/arm64/mm/ |
| H A D | context.c | 38 #define ctxid2asid(asid) ((asid) & ~ASID_MASK) argument 39 #define asid2ctxid(asid, genid) ((asid) | (genid)) 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 276 u64 asid; in arm64_mm_context_get() local 289 asid = 0; in arm64_mm_context_get() 309 asid = ctxid2asid(asid); in arm64_mm_context_get() [all …]
|
| /linux-6.15/arch/arm/mm/ |
| H 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-6.15/arch/csky/mm/ |
| H 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-6.15/arch/xtensa/include/asm/ |
| H 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-6.15/arch/sh/include/asm/ |
| H 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()
|
| H 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
|
| H 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-6.15/arch/sh/mm/ |
| H 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-6.15/arch/riscv/mm/ |
| H A D | tlbflush.c | 20 unsigned long asid) in local_flush_tlb_range_threshold_asid() argument 26 local_flush_tlb_all_asid(asid); in local_flush_tlb_range_threshold_asid() 31 local_flush_tlb_page_asid(start, asid); in local_flush_tlb_range_threshold_asid() 37 unsigned long size, unsigned long stride, unsigned long asid) in local_flush_tlb_range_asid() argument 40 local_flush_tlb_page_asid(start, asid); in local_flush_tlb_range_asid() 42 local_flush_tlb_all_asid(asid); in local_flush_tlb_range_asid() 69 unsigned long asid; member 92 unsigned long asid = get_mm_asid(mm); in __flush_tlb_range() local 102 local_flush_tlb_range_asid(start, size, stride, asid); in __flush_tlb_range() 104 sbi_remote_sfence_vma_asid(cmask, start, size, asid); in __flush_tlb_range() [all …]
|
| /linux-6.15/arch/x86/mm/ |
| H A D | tlb.c | 144 return asid + 1; in kern_pcid() 164 cr3 |= kern_pcid(asid); in build_cr3() 192 u16 asid; in clear_asid_other() local 203 for (asid = 0; asid < TLB_NR_DYN_ASIDS; asid++) { in clear_asid_other() 222 u16 asid; in choose_new_asid() local 247 for (asid = 0; asid < TLB_NR_DYN_ASIDS; asid++) { in choose_new_asid() 252 *new_asid = asid; in choose_new_asid() 312 u16 asid; in allocate_global_asid() local 333 return asid; in allocate_global_asid() 371 u16 asid; in use_global_asid() local [all …]
|
| /linux-6.15/arch/loongarch/include/asm/ |
| H A D | mmu_context.h | 34 #define cpu_context(cpu, mm) ((mm)->context.asid[cpu]) 54 u64 asid = asid_cache(cpu); in get_new_mmu_context() local 56 if (!((++asid) & cpu_asid_mask(&cpu_data[cpu]))) in get_new_mmu_context() 59 cpu_context(cpu, mm) = asid_cache(cpu) = asid; in get_new_mmu_context() 77 static inline void atomic_update_pgd_asid(unsigned long asid, unsigned long pgdl) in atomic_update_pgd_asid() argument 82 : [asid_val] "+r" (asid), [pgdl_val] "+r" (pgdl) in atomic_update_pgd_asid() 143 int asid; in drop_mmu_context() local 148 asid = read_csr_asid() & cpu_asid_mask(¤t_cpu_data); in drop_mmu_context() 150 if (asid == cpu_asid(cpu, mm)) { in drop_mmu_context()
|
| /linux-6.15/arch/arm64/include/asm/ |
| H A D | tlbflush.h | 58 #define __TLBI_VADDR(addr, asid) \ argument 62 __ta |= (unsigned long)(asid) << 48; \ 161 __ta |= FIELD_PREP(TLBIR_ASID_MASK, asid); \ 275 unsigned long asid; in flush_tlb_mm() local 278 asid = __TLBI_VADDR(0, ASID(mm)); in flush_tlb_mm() 279 __tlbi(aside1is, asid); in flush_tlb_mm() 280 __tlbi_user(aside1is, asid); in flush_tlb_mm() 390 asid, tlb_level, tlbi_user, lpa2) \ argument 403 addr = __TLBI_VADDR(__flush_start, asid); \ 451 unsigned long asid, pages; in __flush_tlb_range_nosync() local [all …]
|
| /linux-6.15/arch/riscv/kvm/ |
| H A D | tlb.c | 79 unsigned long asid, in kvm_riscv_local_hfence_vvma_asid_gva() argument 87 kvm_riscv_local_hfence_vvma_asid_all(vmid, asid); in kvm_riscv_local_hfence_vvma_asid_gva() 97 : : "r" (pos), "r" (asid) : "memory"); in kvm_riscv_local_hfence_vvma_asid_gva() 102 : : "r" (pos), "r" (asid) : "memory"); in kvm_riscv_local_hfence_vvma_asid_gva() 109 unsigned long asid) in kvm_riscv_local_hfence_vvma_asid_all() argument 363 data.asid = 0; in kvm_riscv_hfence_gvma_vmid_gpa() 381 unsigned long order, unsigned long asid) in kvm_riscv_hfence_vvma_asid_gva() argument 386 data.asid = asid; in kvm_riscv_hfence_vvma_asid_gva() 396 unsigned long asid) in kvm_riscv_hfence_vvma_asid_all() argument 401 data.asid = asid; in kvm_riscv_hfence_vvma_asid_all() [all …]
|
| /linux-6.15/arch/riscv/include/asm/ |
| H A D | tlbflush.h | 23 static inline void local_flush_tlb_all_asid(unsigned long asid) in local_flush_tlb_all_asid() argument 25 if (asid != FLUSH_TLB_NO_ASID) in local_flush_tlb_all_asid() 26 ALT_SFENCE_VMA_ASID(asid); in local_flush_tlb_all_asid() 38 unsigned long asid) in local_flush_tlb_page_asid() argument 40 if (asid != FLUSH_TLB_NO_ASID) in local_flush_tlb_page_asid() 41 ALT_SFENCE_VMA_ADDR_ASID(addr, asid); in local_flush_tlb_page_asid()
|
| /linux-6.15/arch/x86/include/asm/ |
| H A D | tlbflush.h | 238 static inline bool is_dyn_asid(u16 asid) in is_dyn_asid() argument 240 return asid < TLB_NR_DYN_ASIDS; in is_dyn_asid() 243 static inline bool is_global_asid(u16 asid) in is_global_asid() argument 245 return !is_dyn_asid(asid); in is_global_asid() 251 u16 asid; in mm_global_asid() local 256 asid = smp_load_acquire(&mm->context.global_asid); in mm_global_asid() 259 VM_WARN_ON_ONCE(asid && is_dyn_asid(asid)); in mm_global_asid() 261 return asid; in mm_global_asid() 272 static inline void mm_assign_global_asid(struct mm_struct *mm, u16 asid) in mm_assign_global_asid() argument 280 smp_store_release(&mm->context.global_asid, asid); in mm_assign_global_asid() [all …]
|
| H A D | tlb.h | 81 static inline void __invlpgb(unsigned long asid, unsigned long pcid, in __invlpgb() argument 87 u32 edx = (pcid << 16) | asid; in __invlpgb() 96 static inline void __invlpgb_all(unsigned long asid, unsigned long pcid, u8 flags) in __invlpgb_all() argument 98 __invlpgb(asid, pcid, 0, 1, 0, flags); in __invlpgb_all() 116 static inline void __invlpgb(unsigned long asid, unsigned long pcid, in __invlpgb() argument 119 static inline void __invlpgb_all(unsigned long asid, unsigned long pcid, u8 flags) { } in __invlpgb_all() argument
|
| /linux-6.15/drivers/iommu/arm/arm-smmu-v3/ |
| H A D | arm-smmu-v3-sva.c | 55 u16 asid) in arm_smmu_make_sva_cd() argument 77 FIELD_PREP(CTXDESC_CD_0_ASID, asid)); in arm_smmu_make_sva_cd() 160 arm_smmu_tlb_inv_asid(smmu_domain->smmu, smmu_domain->cd.asid); in arm_smmu_mm_arch_invalidate_secondary_tlbs() 162 arm_smmu_tlb_inv_range_asid(start, size, smmu_domain->cd.asid, in arm_smmu_mm_arch_invalidate_secondary_tlbs() 190 smmu_domain->cd.asid); in arm_smmu_mm_release() 196 arm_smmu_tlb_inv_asid(smmu_domain->smmu, smmu_domain->cd.asid); in arm_smmu_mm_release() 386 xa_erase(&arm_smmu_asid_xa, smmu_domain->cd.asid); in arm_smmu_sva_domain_free() 406 u32 asid; in arm_smmu_sva_domain_alloc() local 422 ret = xa_alloc(&arm_smmu_asid_xa, &asid, smmu_domain, in arm_smmu_sva_domain_alloc() 427 smmu_domain->cd.asid = asid; in arm_smmu_sva_domain_alloc() [all …]
|
| /linux-6.15/drivers/misc/sgi-gru/ |
| H A D | grumain.c | 96 if (asid >= limit) in gru_reset_asid_limit() 109 asid += ASID_INC; in gru_reset_asid_limit() 126 gru->gs_asid = asid; in gru_reset_asid_limit() 128 asid, limit); in gru_reset_asid_limit() 129 return asid; in gru_reset_asid_limit() 135 int asid; in gru_assign_asid() local 140 asid = gru_reset_asid_limit(gru, asid); in gru_assign_asid() 143 return asid; in gru_assign_asid() 226 int asid; in gru_load_mm_tracker() local 253 return asid; in gru_load_mm_tracker() [all …]
|
| H A D | grutlbpurge.c | 150 int grupagesize, pagesize, pageshift, gid, asid; in gru_flush_tlb_range() local 167 asid = asids->mt_asid; in gru_flush_tlb_range() 168 if (asids->mt_ctxbitmap && asid) { in gru_flush_tlb_range() 170 asid = GRUASID(asid, start); in gru_flush_tlb_range() 173 gid, asid, start, grupagesize, num, asids->mt_ctxbitmap); in gru_flush_tlb_range() 175 tgh_invalidate(tgh, start, ~0, asid, grupagesize, 0, in gru_flush_tlb_range() 184 gid, asid, asids->mt_ctxbitmap, in gru_flush_tlb_range()
|
| H A D | gruhandles.c | 135 int asid, int pagesize, int global, int n, in tgh_invalidate() argument 139 tgh->asid = asid; in tgh_invalidate() 152 unsigned long vaddr, int asid, int dirty, in tfh_write_only() argument 155 tfh->fillasid = asid; in tfh_write_only() 168 unsigned long vaddr, int asid, int dirty, in tfh_write_restart() argument 171 tfh->fillasid = asid; in tfh_write_restart()
|
| /linux-6.15/drivers/accel/habanalabs/common/ |
| H A D | asid.c | 50 void hl_asid_free(struct hl_device *hdev, unsigned long asid) in hl_asid_free() argument 52 if (asid == HL_KERNEL_ASID_ID || asid >= hdev->asic_prop.max_asid) { in hl_asid_free() 53 dev_crit(hdev->dev, "Invalid ASID %lu", asid); in hl_asid_free() 57 clear_bit(asid, hdev->asid_bitmap); in hl_asid_free()
|
| /linux-6.15/drivers/vhost/ |
| H A D | vdpa.c | 71 u64 last, u32 asid); 86 if (as->id == asid) in asid_to_as() 107 if (asid_to_as(v, asid)) in vhost_vdpa_alloc_as() 110 if (asid >= v->vdpa->nas) in vhost_vdpa_alloc_as() 118 as->id = asid; in vhost_vdpa_alloc_as() 125 u32 asid) in vhost_vdpa_find_alloc_as() argument 141 ops->reset_map(vdpa, asid); in vhost_vdpa_reset_map() 1264 asid); in vhost_vdpa_process_iotlb_msg() 1291 v->batch_asid = asid; in vhost_vdpa_process_iotlb_msg() 1388 u32 asid; in vhost_vdpa_cleanup() local [all …]
|
| /linux-6.15/drivers/vdpa/vdpa_sim/ |
| H A D | vdpa_sim.c | 603 unsigned int asid) in vdpasim_set_group_asid() argument 612 if (asid >= vdpasim->dev_attr.nas) in vdpasim_set_group_asid() 615 iommu = &vdpasim->iommu[asid]; in vdpasim_set_group_asid() 643 iommu = &vdpasim->iommu[asid]; in vdpasim_set_map() 645 vdpasim->iommu_pt[asid] = false; in vdpasim_set_map() 671 if (vdpasim->iommu_pt[asid]) in vdpasim_reset_map() 676 vdpasim->iommu_pt[asid] = true; in vdpasim_reset_map() 717 if (vdpasim->iommu_pt[asid]) { in vdpasim_dma_map() 719 vdpasim->iommu_pt[asid] = false; in vdpasim_dma_map() 736 if (vdpasim->iommu_pt[asid]) { in vdpasim_dma_unmap() [all …]
|
| /linux-6.15/arch/mips/lib/ |
| H A D | r3k_dump_tlb.c | 27 unsigned int asid; in dump_tlb() local 31 asid = read_c0_entryhi() & asid_mask; in dump_tlb() 46 (entryhi & asid_mask) == asid)) { in dump_tlb() 65 write_c0_entryhi(asid); in dump_tlb()
|
| /linux-6.15/drivers/accel/habanalabs/gaudi/ |
| H A D | gaudi.c | 6210 asid); in gaudi_mmu_prepare() 6212 asid); in gaudi_mmu_prepare() 6214 asid); in gaudi_mmu_prepare() 6216 asid); in gaudi_mmu_prepare() 6218 asid); in gaudi_mmu_prepare() 6223 asid); in gaudi_mmu_prepare() 6225 asid); in gaudi_mmu_prepare() 6227 asid); in gaudi_mmu_prepare() 6229 asid); in gaudi_mmu_prepare() 6231 asid); in gaudi_mmu_prepare() [all …]
|