Skip to content

Commit

Permalink
net/ena/base: destroy multiple wait events
Browse files Browse the repository at this point in the history
[ upstream commit 04a6a3e ]

Although the ENA DPDK PMD doesn't have to perform any actions for
destroying the wait event, some other platforms have to.

The macro "ENA_WAIT_EVENT_DESTROY" was renamed to
"ENA_WAIT_EVENTS_DESTROY" and also whole implementation responsible for
that was moved to a separate function for better readability.

Fixes: 3adcba9 ("net/ena: update HAL to the newer version")

Signed-off-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Igor Chauskin <igorch@amazon.com>
Reviewed-by: Guy Tzalik <gtzalik@amazon.com>
  • Loading branch information
Gerwand authored and steevenlee committed Jun 8, 2021
1 parent 74cc4f7 commit 1c44277
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 8 deletions.
24 changes: 17 additions & 7 deletions drivers/net/ena/base/ena_com.c
Expand Up @@ -1655,6 +1655,22 @@ int ena_com_validate_version(struct ena_com_dev *ena_dev)
return 0;
}

static void
ena_com_free_ena_admin_queue_comp_ctx(struct ena_com_dev *ena_dev,
struct ena_com_admin_queue *admin_queue)

{
if (!admin_queue->comp_ctx)
return;

ENA_WAIT_EVENTS_DESTROY(admin_queue);
ENA_MEM_FREE(ena_dev->dmadev,
admin_queue->comp_ctx,
(admin_queue->q_depth * sizeof(struct ena_comp_ctx)));

admin_queue->comp_ctx = NULL;
}

void ena_com_admin_destroy(struct ena_com_dev *ena_dev)
{
struct ena_com_admin_queue *admin_queue = &ena_dev->admin_queue;
Expand All @@ -1663,14 +1679,8 @@ void ena_com_admin_destroy(struct ena_com_dev *ena_dev)
struct ena_com_aenq *aenq = &ena_dev->aenq;
u16 size;

if (admin_queue->comp_ctx) {
ENA_WAIT_EVENT_DESTROY(admin_queue->comp_ctx->wait_event);
ENA_MEM_FREE(ena_dev->dmadev,
admin_queue->comp_ctx,
(admin_queue->q_depth * sizeof(struct ena_comp_ctx)));
}
ena_com_free_ena_admin_queue_comp_ctx(ena_dev, admin_queue);

admin_queue->comp_ctx = NULL;
size = ADMIN_SQ_SIZE(admin_queue->q_depth);
if (sq->entries)
ENA_MEM_FREE_COHERENT(ena_dev->dmadev, size, sq->entries,
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/ena/base/ena_plat_dpdk.h
Expand Up @@ -294,7 +294,7 @@ extern rte_atomic32_t ena_alloc_cnt;
#define ENA_TIME_EXPIRE(timeout) (timeout < rte_get_timer_cycles())
#define ENA_GET_SYSTEM_TIMEOUT(timeout_us) \
(timeout_us * rte_get_timer_hz() / 1000000 + rte_get_timer_cycles())
#define ENA_WAIT_EVENT_DESTROY(waitqueue) ((void)(waitqueue))
#define ENA_WAIT_EVENTS_DESTROY(admin_queue) ((void)(admin_queue))

#ifndef READ_ONCE
#define READ_ONCE(var) (*((volatile typeof(var) *)(&(var))))
Expand Down

0 comments on commit 1c44277

Please sign in to comment.