Home | History | Annotate | Download | only in ena-com

Lines Matching defs:comp_ctx

208 				     struct ena_comp_ctx *comp_ctx)
210 comp_ctx->occupied = false;
223 if (unlikely(queue->comp_ctx[command_id].occupied && capture)) {
230 queue->comp_ctx[command_id].occupied = true;
233 return &queue->comp_ctx[command_id];
242 struct ena_comp_ctx *comp_ctx;
267 comp_ctx = get_comp_ctxt(admin_queue, cmd_id, true);
268 if (unlikely(!comp_ctx))
271 comp_ctx->status = ENA_CMD_SUBMITTED;
272 comp_ctx->comp_size = (u32)comp_size_in_bytes;
273 comp_ctx->user_cqe = comp;
274 comp_ctx->cmd_opcode = cmd->aq_common_descriptor.opcode;
276 ENA_WAIT_EVENT_CLEAR(comp_ctx->wait_event);
293 return comp_ctx;
299 struct ena_comp_ctx *comp_ctx;
302 queue->comp_ctx = ENA_MEM_ALLOC(queue->q_dmadev, size);
303 if (unlikely(!queue->comp_ctx)) {
309 comp_ctx = get_comp_ctxt(queue, i, false);
310 if (comp_ctx)
311 ENA_WAIT_EVENT_INIT(comp_ctx->wait_event);
324 struct ena_comp_ctx *comp_ctx;
331 comp_ctx = __ena_com_submit_admin_cmd(admin_queue, cmd,
335 if (unlikely(IS_ERR(comp_ctx)))
339 return comp_ctx;
467 struct ena_comp_ctx *comp_ctx;
473 comp_ctx = get_comp_ctxt(admin_queue, cmd_id, false);
474 if (unlikely(!comp_ctx)) {
475 ena_trc_err("comp_ctx is NULL. Changing the admin queue running state\n");
480 comp_ctx->status = ENA_CMD_COMPLETED;
481 comp_ctx->comp_status = cqe->acq_common_descriptor.status;
483 if (comp_ctx->user_cqe)
484 memcpy(comp_ctx->user_cqe, (void *)cqe, comp_ctx->comp_size);
487 ENA_WAIT_EVENT_SIGNAL(comp_ctx->wait_event);
552 static int ena_com_wait_and_process_admin_cq_polling(struct ena_comp_ctx *comp_ctx,
565 if (comp_ctx->status != ENA_CMD_SUBMITTED)
583 if (unlikely(comp_ctx->status == ENA_CMD_ABORTED)) {
592 ENA_WARN(comp_ctx->status != ENA_CMD_COMPLETED,
593 "Invalid comp status %d\n", comp_ctx->status);
595 ret = ena_com_comp_status_to_errno(comp_ctx->comp_status);
597 comp_ctxt_release(admin_queue, comp_ctx);
670 static int ena_com_wait_and_process_admin_cq_interrupts(struct ena_comp_ctx *comp_ctx,
676 ENA_WAIT_EVENT_WAIT(comp_ctx->wait_event,
684 if (unlikely(comp_ctx->status == ENA_CMD_SUBMITTED)) {
690 if (comp_ctx->status == ENA_CMD_COMPLETED)
692 comp_ctx->cmd_opcode);
695 comp_ctx->cmd_opcode, comp_ctx->status);
702 ret = ena_com_comp_status_to_errno(comp_ctx->comp_status);
704 comp_ctxt_release(admin_queue, comp_ctx);
782 static int ena_com_wait_and_process_admin_cq(struct ena_comp_ctx *comp_ctx,
786 return ena_com_wait_and_process_admin_cq_polling(comp_ctx,
789 return ena_com_wait_and_process_admin_cq_interrupts(comp_ctx,
1268 struct ena_comp_ctx *comp_ctx;
1271 comp_ctx = ena_com_submit_admin_cmd(admin_queue, cmd, cmd_size,
1273 if (unlikely(IS_ERR(comp_ctx))) {
1274 if (comp_ctx == ERR_PTR(ENA_COM_NO_DEVICE))
1276 PTR_ERR(comp_ctx));
1279 PTR_ERR(comp_ctx));
1281 return PTR_ERR(comp_ctx);
1284 ret = ena_com_wait_and_process_admin_cq(comp_ctx, admin_queue);
1373 struct ena_comp_ctx *comp_ctx;
1376 if (!admin_queue->comp_ctx)
1380 comp_ctx = get_comp_ctxt(admin_queue, i, false);
1381 if (unlikely(!comp_ctx))
1384 comp_ctx->status = ENA_CMD_ABORTED;
1386 ENA_WAIT_EVENT_SIGNAL(comp_ctx->wait_event);
1591 if (admin_queue->comp_ctx) {
1595 struct ena_comp_ctx *comp_ctx = get_comp_ctxt(admin_queue, i, false);
1596 if (comp_ctx != NULL)
1597 ENA_WAIT_EVENT_DESTROY(comp_ctx->wait_event);
1601 ENA_MEM_FREE(ena_dev->dmadev, admin_queue->comp_ctx, s);
1603 admin_queue->comp_ctx = NULL;