Lines Matching defs:comp_ctx

171 				     struct ena_comp_ctx *comp_ctx)
173 comp_ctx->occupied = false;
187 if (unlikely(!admin_queue->comp_ctx)) {
192 if (unlikely(admin_queue->comp_ctx[command_id].occupied && capture)) {
199 admin_queue->comp_ctx[command_id].occupied = true;
202 return &admin_queue->comp_ctx[command_id];
211 struct ena_comp_ctx *comp_ctx;
236 comp_ctx = get_comp_ctxt(admin_queue, cmd_id, true);
237 if (unlikely(!comp_ctx))
240 comp_ctx->status = ENA_CMD_SUBMITTED;
241 comp_ctx->comp_size = (u32)comp_size_in_bytes;
242 comp_ctx->user_cqe = comp;
243 comp_ctx->cmd_opcode = cmd->aq_common_descriptor.opcode;
245 reinit_completion(&comp_ctx->wait_event);
260 return comp_ctx;
267 struct ena_comp_ctx *comp_ctx;
270 admin_queue->comp_ctx = devm_kzalloc(admin_queue->q_dmadev, size, GFP_KERNEL);
271 if (unlikely(!admin_queue->comp_ctx)) {
277 comp_ctx = get_comp_ctxt(admin_queue, i, false);
278 if (comp_ctx)
279 init_completion(&comp_ctx->wait_event);
292 struct ena_comp_ctx *comp_ctx;
299 comp_ctx = __ena_com_submit_admin_cmd(admin_queue, cmd,
303 if (IS_ERR(comp_ctx))
307 return comp_ctx;
437 struct ena_comp_ctx *comp_ctx;
443 comp_ctx = get_comp_ctxt(admin_queue, cmd_id, false);
444 if (unlikely(!comp_ctx)) {
446 "comp_ctx is NULL. Changing the admin queue running state\n");
451 comp_ctx->status = ENA_CMD_COMPLETED;
452 comp_ctx->comp_status = cqe->acq_common_descriptor.status;
454 if (comp_ctx->user_cqe)
455 memcpy(comp_ctx->user_cqe, (void *)cqe, comp_ctx->comp_size);
458 complete(&comp_ctx->wait_event);
532 static int ena_com_wait_and_process_admin_cq_polling(struct ena_comp_ctx *comp_ctx,
547 if (comp_ctx->status != ENA_CMD_SUBMITTED)
567 if (unlikely(comp_ctx->status == ENA_CMD_ABORTED)) {
576 WARN(comp_ctx->status != ENA_CMD_COMPLETED, "Invalid comp status %d\n", comp_ctx->status);
578 ret = ena_com_comp_status_to_errno(admin_queue, comp_ctx->comp_status);
580 comp_ctxt_release(admin_queue, comp_ctx);
755 static int ena_com_wait_and_process_admin_cq_interrupts(struct ena_comp_ctx *comp_ctx,
761 wait_for_completion_timeout(&comp_ctx->wait_event,
769 if (unlikely(comp_ctx->status == ENA_CMD_SUBMITTED)) {
775 if (comp_ctx->status == ENA_CMD_COMPLETED) {
778 comp_ctx->cmd_opcode, admin_queue->auto_polling ? "ON" : "OFF");
785 comp_ctx->cmd_opcode, comp_ctx->status);
798 ret = ena_com_comp_status_to_errno(admin_queue, comp_ctx->comp_status);
800 comp_ctxt_release(admin_queue, comp_ctx);
871 static int ena_com_wait_and_process_admin_cq(struct ena_comp_ctx *comp_ctx,
875 return ena_com_wait_and_process_admin_cq_polling(comp_ctx,
878 return ena_com_wait_and_process_admin_cq_interrupts(comp_ctx,
1317 struct ena_comp_ctx *comp_ctx;
1320 comp_ctx = ena_com_submit_admin_cmd(admin_queue, cmd, cmd_size,
1322 if (IS_ERR(comp_ctx)) {
1323 ret = PTR_ERR(comp_ctx);
1334 ret = ena_com_wait_and_process_admin_cq(comp_ctx, admin_queue);
1418 struct ena_comp_ctx *comp_ctx;
1421 if (!admin_queue->comp_ctx)
1425 comp_ctx = get_comp_ctxt(admin_queue, i, false);
1426 if (unlikely(!comp_ctx))
1429 comp_ctx->status = ENA_CMD_ABORTED;
1431 complete(&comp_ctx->wait_event);
1619 if (!admin_queue->comp_ctx)
1622 devm_kfree(ena_dev->dmadev, admin_queue->comp_ctx);
1624 admin_queue->comp_ctx = NULL;