]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/ethernet/amazon/ena/ena_com.c
net: ena: fix race condition between submit and completion admin command
[karo-tx-linux.git] / drivers / net / ethernet / amazon / ena / ena_com.c
index e1c2fab6292f547f1bc6b55a86f05b7060a5e195..ea60b9e67acb57cb844b9ebb43b9556c8f798324 100644 (file)
@@ -232,11 +232,9 @@ static struct ena_comp_ctx *__ena_com_submit_admin_cmd(struct ena_com_admin_queu
        tail_masked = admin_queue->sq.tail & queue_size_mask;
 
        /* In case of queue FULL */
-       cnt = admin_queue->sq.tail - admin_queue->sq.head;
+       cnt = atomic_read(&admin_queue->outstanding_cmds);
        if (cnt >= admin_queue->q_depth) {
-               pr_debug("admin queue is FULL (tail %d head %d depth: %d)\n",
-                        admin_queue->sq.tail, admin_queue->sq.head,
-                        admin_queue->q_depth);
+               pr_debug("admin queue is full.\n");
                admin_queue->stats.out_of_space++;
                return ERR_PTR(-ENOSPC);
        }