Lines Matching refs:afu
37 int cxl_context_init(struct cxl_context *ctx, struct cxl_afu *afu, bool master, in cxl_context_init() argument
43 ctx->afu = afu; in cxl_context_init()
88 mutex_lock(&afu->contexts_lock); in cxl_context_init()
90 i = idr_alloc(&ctx->afu->contexts_idr, ctx, 0, in cxl_context_init()
91 ctx->afu->num_procs, GFP_NOWAIT); in cxl_context_init()
93 mutex_unlock(&afu->contexts_lock); in cxl_context_init()
98 ctx->elem = &ctx->afu->spa[i]; in cxl_context_init()
114 if (ctx->afu->current_mode == CXL_MODE_DEDICATED) { in cxl_mmap_fault()
115 area = ctx->afu->psn_phys; in cxl_mmap_fault()
116 if (offset >= ctx->afu->adapter->ps_size) in cxl_mmap_fault()
151 if (ctx->afu->current_mode != CXL_MODE_DEDICATED) { in cxl_context_iomap()
153 if ((ctx->master && !ctx->afu->psa) || (!ctx->afu->pp_psa)) { in cxl_context_iomap()
159 if (!ctx->afu->enabled) in cxl_context_iomap()
208 void cxl_context_detach_all(struct cxl_afu *afu) in cxl_context_detach_all() argument
213 mutex_lock(&afu->contexts_lock); in cxl_context_detach_all()
214 idr_for_each_entry(&afu->contexts_idr, ctx, tmp) { in cxl_context_detach_all()
232 mutex_unlock(&afu->contexts_lock); in cxl_context_detach_all()
237 mutex_lock(&ctx->afu->contexts_lock); in cxl_context_free()
238 idr_remove(&ctx->afu->contexts_idr, ctx->pe); in cxl_context_free()
239 mutex_unlock(&ctx->afu->contexts_lock); in cxl_context_free()