From 0336e2987c3e671298af8c2817ec17aa67e98065 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 27 Oct 2025 12:41:36 +0000 Subject: [PATCH] [ena] Leave queue base address empty when creating a low latency queue 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 --- src/drivers/net/ena.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/drivers/net/ena.c b/src/drivers/net/ena.c index 35bdd34c2..56984d142 100644 --- a/src/drivers/net/ena.c +++ b/src/drivers/net/ena.c @@ -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 ) { -- 2.47.3