[PATCH] RDMA/efa: Fix possible deadlock

From: Ethan Tidmore

Date: Sat Mar 14 2026 - 00:58:00 EST


In the error path for efa_com_alloc_comp_ctx() the lock assigned to
&aq->avail_cmds is not released.

Add release for &aq->avail_cmds in efa_com_alloc_comp_ctx() error path.

Fixes: ef3b06742c8a2 ("RDMA/efa: Fix use of completion ctx after free")
Signed-off-by: Ethan Tidmore <ethantidmore06@xxxxxxxxx>
---
drivers/infiniband/hw/efa/efa_com.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/infiniband/hw/efa/efa_com.c b/drivers/infiniband/hw/efa/efa_com.c
index 56caba612139..e97b5f0d7003 100644
--- a/drivers/infiniband/hw/efa/efa_com.c
+++ b/drivers/infiniband/hw/efa/efa_com.c
@@ -629,6 +629,7 @@ int efa_com_cmd_exec(struct efa_com_admin_queue *aq,
comp_ctx = efa_com_alloc_comp_ctx(aq);
if (!comp_ctx) {
clear_bit(EFA_AQ_STATE_RUNNING_BIT, &aq->state);
+ up(&aq->avail_cmds);
return -EINVAL;
}

--
2.53.0