/Linux-v4.19/arch/arm64/mm/ |
D | context.c | 45 #define asid2idx(asid) (((asid) & ~ASID_MASK) >> 1) argument 49 #define asid2idx(asid) ((asid) & ~ASID_MASK) argument 56 u32 asid; in get_cpu_asid_bits() local 66 asid = 8; in get_cpu_asid_bits() 69 asid = 16; in get_cpu_asid_bits() 72 return asid; in get_cpu_asid_bits() 78 u32 asid = get_cpu_asid_bits(); in verify_cpu_asid_bits() local 80 if (asid < asid_bits) { in verify_cpu_asid_bits() 86 smp_processor_id(), asid, asid_bits); in verify_cpu_asid_bits() 94 u64 asid; in flush_context() local [all …]
|
/Linux-v4.19/arch/arm/mm/ |
D | context.c | 59 u64 context_id, asid; in a15_erratum_get_cpumask() local 70 asid = per_cpu(active_asids, cpu).counter; in a15_erratum_get_cpumask() 71 if (asid == 0) in a15_erratum_get_cpumask() 72 asid = per_cpu(reserved_asids, cpu); in a15_erratum_get_cpumask() 73 if (context_id == asid) in a15_erratum_get_cpumask() 142 u64 asid; in flush_context() local 147 asid = atomic64_xchg(&per_cpu(active_asids, i), 0); in flush_context() 155 if (asid == 0) in flush_context() 156 asid = per_cpu(reserved_asids, i); in flush_context() 157 __set_bit(asid & ~ASID_MASK, asid_map); in flush_context() [all …]
|
/Linux-v4.19/arch/xtensa/include/asm/ |
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() 119 mm->context.asid[cpu] = NO_CONTEXT; in init_new_context()
|
/Linux-v4.19/arch/sh/include/asm/ |
D | mmu_context_32.h | 15 static inline void set_asid(unsigned long asid) in set_asid() argument 17 __raw_writel(asid, MMU_PTEAEX); in set_asid() 25 static inline void set_asid(unsigned long asid) in set_asid() argument 34 : "r" (asid), "m" (__m(MMU_PTEH)), in set_asid() 40 unsigned long asid; in get_asid() local 43 : "=r" (asid) in get_asid() 45 asid &= MMU_CONTEXT_ASID_MASK; in get_asid() 46 return asid; in get_asid()
|
D | mmu_context.h | 62 unsigned long asid = asid_cache(cpu); in get_mmu_context() local 65 if (((cpu_context(cpu, mm) ^ asid) & MMU_CONTEXT_VERSION_MASK) == 0) in get_mmu_context() 70 if (!(++asid & MMU_CONTEXT_ASID_MASK)) { in get_mmu_context() 89 if (!asid) in get_mmu_context() 90 asid = MMU_CONTEXT_FIRST_VERSION; in get_mmu_context() 93 cpu_context(cpu, mm) = asid_cache(cpu) = asid; in get_mmu_context() 142 #define set_asid(asid) do { } while (0) argument 145 #define switch_and_save_asid(asid) (0) argument
|
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
|
D | mmu_context_64.h | 42 static inline void set_asid(unsigned long asid) in set_asid() argument 48 sr = (sr & SR_ASID_MASK) | (asid << SR_ASID_SHIFT); in set_asid()
|
D | tlb_64.h | 60 unsigned long asid, unsigned long paddr); 67 #define sh64_setup_tlb_slot(conf, virt, asid, phys) do { } while (0) argument
|
/Linux-v4.19/arch/sh/mm/ |
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() 68 local_flush_tlb_one(asid, start); 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() [all …]
|
D | tlb-pteaex.c | 70 void local_flush_tlb_one(unsigned long asid, unsigned long page) in local_flush_tlb_one() argument 74 __raw_writel(asid, MMU_UTLB_ADDRESS_ARRAY2 | MMU_PAGE_ASSOC_BIT); in local_flush_tlb_one() 76 __raw_writel(asid, MMU_ITLB_ADDRESS_ARRAY2 | MMU_PAGE_ASSOC_BIT); in local_flush_tlb_one()
|
D | tlb-debugfs.c | 94 unsigned long vpn, ppn, asid, size; in tlb_seq_show() local 107 asid = val & MMU_CONTEXT_ASID_MASK; in tlb_seq_show() 126 entry, vpn, ppn, asid, in tlb_seq_show()
|
D | tlb-sh3.c | 57 void local_flush_tlb_one(unsigned long asid, unsigned long page) in local_flush_tlb_one() argument 69 data = (page & 0xfffe0000) | asid; /* VALID bit is off */ in local_flush_tlb_one()
|
/Linux-v4.19/arch/x86/include/asm/ |
D | tlbflush.h | 75 static inline u16 kern_pcid(u16 asid) in kern_pcid() argument 77 VM_WARN_ON_ONCE(asid > MAX_ASID_AVAILABLE); in kern_pcid() 90 VM_WARN_ON_ONCE(asid & (1 << X86_CR3_PTI_PCID_USER_BIT)); in kern_pcid() 105 return asid + 1; in kern_pcid() 111 static inline u16 user_pcid(u16 asid) in user_pcid() argument 113 u16 ret = kern_pcid(asid); in user_pcid() 121 static inline unsigned long build_cr3(pgd_t *pgd, u16 asid) in build_cr3() argument 124 return __sme_pa(pgd) | kern_pcid(asid); in build_cr3() 126 VM_WARN_ON_ONCE(asid != 0); in build_cr3() 131 static inline unsigned long build_cr3_noflush(pgd_t *pgd, u16 asid) in build_cr3_noflush() argument [all …]
|
/Linux-v4.19/arch/arm64/include/asm/ |
D | tlbflush.h | 64 #define __TLBI_VADDR(addr, asid) \ argument 68 __ta |= (unsigned long)(asid) << 48; \ 129 unsigned long asid = __TLBI_VADDR(0, ASID(mm)); in flush_tlb_mm() local 132 __tlbi(aside1is, asid); in flush_tlb_mm() 133 __tlbi_user(aside1is, asid); in flush_tlb_mm() 158 unsigned long asid = ASID(vma->vm_mm); in __flush_tlb_range() local 166 start = __TLBI_VADDR(start, asid); in __flush_tlb_range() 167 end = __TLBI_VADDR(end, asid); in __flush_tlb_range()
|
/Linux-v4.19/drivers/misc/sgi-gru/ |
D | grumain.c | 106 static int gru_reset_asid_limit(struct gru_state *gru, int asid) in gru_reset_asid_limit() argument 110 gru_dbg(grudev, "gid %d, asid 0x%x\n", gru->gs_gid, asid); in gru_reset_asid_limit() 113 if (asid >= limit) in gru_reset_asid_limit() 114 asid = gru_wrap_asid(gru); in gru_reset_asid_limit() 125 if (inuse_asid == asid) { in gru_reset_asid_limit() 126 asid += ASID_INC; in gru_reset_asid_limit() 127 if (asid >= limit) { in gru_reset_asid_limit() 133 if (asid >= MAX_ASID) in gru_reset_asid_limit() 134 asid = gru_wrap_asid(gru); in gru_reset_asid_limit() 139 if ((inuse_asid > asid) && (inuse_asid < limit)) in gru_reset_asid_limit() [all …]
|
D | gruhandles.c | 153 int asid, int pagesize, int global, int n, in tgh_invalidate() argument 157 tgh->asid = asid; in tgh_invalidate() 170 unsigned long vaddr, int asid, int dirty, in tfh_write_only() argument 173 tfh->fillasid = asid; in tfh_write_only() 186 unsigned long vaddr, int asid, int dirty, in tfh_write_restart() argument 189 tfh->fillasid = asid; in tfh_write_restart()
|
D | grutlbpurge.c | 165 int grupagesize, pagesize, pageshift, gid, asid; in gru_flush_tlb_range() local 182 asid = asids->mt_asid; in gru_flush_tlb_range() 183 if (asids->mt_ctxbitmap && asid) { in gru_flush_tlb_range() 185 asid = GRUASID(asid, start); in gru_flush_tlb_range() 188 gid, asid, start, grupagesize, num, asids->mt_ctxbitmap); in gru_flush_tlb_range() 190 tgh_invalidate(tgh, start, ~0, asid, grupagesize, 0, in gru_flush_tlb_range() 199 gid, asid, asids->mt_ctxbitmap, in gru_flush_tlb_range()
|
D | gruhandles.h | 214 unsigned int asid:24; /* DW 2 */ member 388 unsigned int asid[8]; /* DW 2 - 5 */ member 521 unsigned long vaddrmask, int asid, int pagesize, int global, int n, 524 int gaa, unsigned long vaddr, int asid, int dirty, int pagesize); 526 int gaa, unsigned long vaddr, int asid, int dirty, int pagesize);
|
/Linux-v4.19/arch/mips/lib/ |
D | r3k_dump_tlb.c | 32 unsigned int asid; in dump_tlb() local 36 asid = read_c0_entryhi() & asid_mask; in dump_tlb() 51 (entryhi & asid_mask) == asid)) { in dump_tlb() 70 write_c0_entryhi(asid); in dump_tlb()
|
/Linux-v4.19/arch/mips/include/asm/ |
D | mmu_context.h | 91 #define cpu_context(cpu, mm) ((mm)->context.asid[cpu]) 105 unsigned long asid = asid_cache(cpu); in get_new_mmu_context() local 107 if (!((asid += cpu_asid_inc()) & cpu_asid_mask(&cpu_data[cpu]))) { in get_new_mmu_context() 111 if (!asid) /* fix version if needed */ in get_new_mmu_context() 112 asid = asid_first_version(cpu); in get_new_mmu_context() 115 cpu_context(cpu, mm) = asid_cache(cpu) = asid; in get_new_mmu_context()
|
/Linux-v4.19/arch/x86/mm/ |
D | tlb.c | 40 u16 asid; in clear_asid_other() local 51 for (asid = 0; asid < TLB_NR_DYN_ASIDS; asid++) { in clear_asid_other() 53 if (asid == this_cpu_read(cpu_tlbstate.loaded_mm_asid)) in clear_asid_other() 59 this_cpu_write(cpu_tlbstate.ctxs[asid].ctx_id, 0); in clear_asid_other() 70 u16 asid; in choose_new_asid() local 81 for (asid = 0; asid < TLB_NR_DYN_ASIDS; asid++) { in choose_new_asid() 82 if (this_cpu_read(cpu_tlbstate.ctxs[asid].ctx_id) != in choose_new_asid() 86 *new_asid = asid; in choose_new_asid() 87 *need_flush = (this_cpu_read(cpu_tlbstate.ctxs[asid].tlb_gen) < in choose_new_asid()
|
/Linux-v4.19/arch/xtensa/mm/ |
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-v4.19/drivers/iommu/ |
D | qcom_iommu.c | 68 u8 asid; /* asid and ctx bank # are 1:1 */ member 94 static struct qcom_iommu_ctx * to_ctx(struct iommu_fwspec *fwspec, unsigned asid) in to_ctx() argument 99 return qcom_iommu->ctxs[asid - 1]; in to_ctx() 151 iommu_writel(ctx, ARM_SMMU_CB_S1_TLBIASID, ctx->asid); in qcom_iommu_tlb_inv_context() 170 iova |= ctx->asid; in qcom_iommu_tlb_inv_range_nosync() 202 fsr, iova, fsynr, ctx->asid); in qcom_iommu_fault() 250 ret = qcom_scm_restore_sec_cfg(qcom_iommu->sec_id, ctx->asid); in qcom_iommu_init_domain() 261 ((u64)ctx->asid << TTBRn_ASID_SHIFT)); in qcom_iommu_init_domain() 264 ((u64)ctx->asid << TTBRn_ASID_SHIFT)); in qcom_iommu_init_domain() 548 unsigned asid = args->args[0]; in qcom_iommu_of_xlate() local [all …]
|
D | tegra-smmu.c | 204 unsigned long asid) in smmu_flush_tlb_asid() argument 208 value = SMMU_TLB_FLUSH_ASID_MATCH | SMMU_TLB_FLUSH_ASID(asid) | in smmu_flush_tlb_asid() 214 unsigned long asid, in smmu_flush_tlb_section() argument 219 value = SMMU_TLB_FLUSH_ASID_MATCH | SMMU_TLB_FLUSH_ASID(asid) | in smmu_flush_tlb_section() 225 unsigned long asid, in smmu_flush_tlb_group() argument 230 value = SMMU_TLB_FLUSH_ASID_MATCH | SMMU_TLB_FLUSH_ASID(asid) | in smmu_flush_tlb_group() 339 unsigned int asid) in tegra_smmu_enable() argument 360 value |= SMMU_ASID_VALUE(asid); in tegra_smmu_enable() 367 unsigned int asid) in tegra_smmu_disable() argument 377 value |= SMMU_ASID_VALUE(asid); in tegra_smmu_disable() [all …]
|
/Linux-v4.19/arch/mips/dec/ |
D | kn01-berr.c | 83 long asid, entryhi, vaddr; in dec_kn01_be_backend() local 113 asid = read_c0_entryhi(); in dec_kn01_be_backend() 114 entryhi = asid & (PAGE_SIZE - 1); in dec_kn01_be_backend() 122 write_c0_entryhi(asid); in dec_kn01_be_backend()
|