]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[ena] Leave queue base address empty when creating a low latency queue
authorMichael Brown <mcb30@ipxe.org>
Mon, 27 Oct 2025 12:41:36 +0000 (12:41 +0000)
committerMichael Brown <mcb30@ipxe.org>
Tue, 28 Oct 2025 12:27:06 +0000 (12:27 +0000)
The queue base address is meaningless for a low latency queue, since
the queue entries are written directly to the on-device memory.  Any
non-zero queue base address will be safely ignored by the hardware,
but leaves open the possibility that future revisions could treat it
as an error.

Leave this field as zero, to match the behaviour of the Linux driver.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/ena.c

index 35bdd34c2f557952f77ca7851661002e332c2add..56984d142959682a269c56eb6aa97a502218120b 100644 (file)
@@ -468,7 +468,10 @@ static int ena_create_sq ( struct ena_nic *ena, struct ena_sq *sq,
        req->create_sq.policy = cpu_to_le16 ( sq->policy );
        req->create_sq.cq_id = cpu_to_le16 ( cq->id );
        req->create_sq.count = cpu_to_le16 ( sq->count );
-       req->create_sq.address = cpu_to_le64 ( virt_to_bus ( sq->sqe.raw ) );
+       if ( ! ( sq->policy & ENA_SQ_DEVICE_MEMORY ) ) {
+               req->create_sq.address =
+                       cpu_to_le64 ( virt_to_bus ( sq->sqe.raw ) );
+       }
 
        /* Issue request */
        if ( ( rc = ena_admin ( ena, req, &rsp ) ) != 0 ) {