| 297 | } |
| 298 | |
| 299 | static struct ena_comp_ctx *ena_com_submit_admin_cmd(struct ena_com_admin_queue *admin_queue, |
| 300 | struct ena_admin_aq_entry *cmd, |
| 301 | size_t cmd_size_in_bytes, |
| 302 | struct ena_admin_acq_entry *comp, |
| 303 | size_t comp_size_in_bytes) |
| 304 | { |
| 305 | unsigned long flags = 0; |
| 306 | struct ena_comp_ctx *comp_ctx; |
| 307 | |
| 308 | ENA_SPINLOCK_LOCK(admin_queue->q_lock, flags); |
| 309 | if (unlikely(!admin_queue->running_state)) { |
| 310 | ENA_SPINLOCK_UNLOCK(admin_queue->q_lock, flags); |
| 311 | return ERR_PTR(ENA_COM_NO_DEVICE); |
| 312 | } |
| 313 | comp_ctx = __ena_com_submit_admin_cmd(admin_queue, cmd, |
| 314 | cmd_size_in_bytes, |
| 315 | comp, |
| 316 | comp_size_in_bytes); |
| 317 | if (IS_ERR(comp_ctx)) |
| 318 | admin_queue->running_state = false; |
| 319 | ENA_SPINLOCK_UNLOCK(admin_queue->q_lock, flags); |
| 320 | |
| 321 | return comp_ctx; |
| 322 | } |
| 323 | |
| 324 | static int ena_com_init_io_sq(struct ena_com_dev *ena_dev, |
| 325 | struct ena_com_create_io_ctx *ctx, |
no test coverage detected