Skip to content

Commit a8c3c15

Browse files
ShayAgrospelwell
authored andcommitted
net: ena: Fix redundant device NUMA node override
[ Upstream commit 2dc8b1e ] The driver overrides the NUMA node id of the device regardless of whether it knows its correct value (often setting it to -1 even though the node id is advertised in 'struct device'). This can lead to suboptimal configurations. This patch fixes this behavior and makes the shared memory allocation functions use the NUMA node id advertised by the underlying device. Fixes: 1738cd3 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)") Signed-off-by: Shay Agroskin <shayagr@amazon.com> Link: https://lore.kernel.org/r/20240528170912.1204417-1-shayagr@amazon.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent b50897e commit a8c3c15

File tree

1 file changed

+0
-11
lines changed

1 file changed

+0
-11
lines changed

drivers/net/ethernet/amazon/ena/ena_com.c

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,6 @@ static int ena_com_init_io_sq(struct ena_com_dev *ena_dev,
312312
struct ena_com_io_sq *io_sq)
313313
{
314314
size_t size;
315-
int dev_node = 0;
316315

317316
memset(&io_sq->desc_addr, 0x0, sizeof(io_sq->desc_addr));
318317

@@ -325,12 +324,9 @@ static int ena_com_init_io_sq(struct ena_com_dev *ena_dev,
325324
size = io_sq->desc_entry_size * io_sq->q_depth;
326325

327326
if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST) {
328-
dev_node = dev_to_node(ena_dev->dmadev);
329-
set_dev_node(ena_dev->dmadev, ctx->numa_node);
330327
io_sq->desc_addr.virt_addr =
331328
dma_alloc_coherent(ena_dev->dmadev, size, &io_sq->desc_addr.phys_addr,
332329
GFP_KERNEL);
333-
set_dev_node(ena_dev->dmadev, dev_node);
334330
if (!io_sq->desc_addr.virt_addr) {
335331
io_sq->desc_addr.virt_addr =
336332
dma_alloc_coherent(ena_dev->dmadev, size,
@@ -354,10 +350,7 @@ static int ena_com_init_io_sq(struct ena_com_dev *ena_dev,
354350
size = (size_t)io_sq->bounce_buf_ctrl.buffer_size *
355351
io_sq->bounce_buf_ctrl.buffers_num;
356352

357-
dev_node = dev_to_node(ena_dev->dmadev);
358-
set_dev_node(ena_dev->dmadev, ctx->numa_node);
359353
io_sq->bounce_buf_ctrl.base_buffer = devm_kzalloc(ena_dev->dmadev, size, GFP_KERNEL);
360-
set_dev_node(ena_dev->dmadev, dev_node);
361354
if (!io_sq->bounce_buf_ctrl.base_buffer)
362355
io_sq->bounce_buf_ctrl.base_buffer =
363356
devm_kzalloc(ena_dev->dmadev, size, GFP_KERNEL);
@@ -397,7 +390,6 @@ static int ena_com_init_io_cq(struct ena_com_dev *ena_dev,
397390
struct ena_com_io_cq *io_cq)
398391
{
399392
size_t size;
400-
int prev_node = 0;
401393

402394
memset(&io_cq->cdesc_addr, 0x0, sizeof(io_cq->cdesc_addr));
403395

@@ -409,11 +401,8 @@ static int ena_com_init_io_cq(struct ena_com_dev *ena_dev,
409401

410402
size = io_cq->cdesc_entry_size_in_bytes * io_cq->q_depth;
411403

412-
prev_node = dev_to_node(ena_dev->dmadev);
413-
set_dev_node(ena_dev->dmadev, ctx->numa_node);
414404
io_cq->cdesc_addr.virt_addr =
415405
dma_alloc_coherent(ena_dev->dmadev, size, &io_cq->cdesc_addr.phys_addr, GFP_KERNEL);
416-
set_dev_node(ena_dev->dmadev, prev_node);
417406
if (!io_cq->cdesc_addr.virt_addr) {
418407
io_cq->cdesc_addr.virt_addr =
419408
dma_alloc_coherent(ena_dev->dmadev, size, &io_cq->cdesc_addr.phys_addr,

0 commit comments

Comments
 (0)