Module Name: src
Committed By: jdolecek
Date: Sun Nov 5 18:24:31 UTC 2023
Modified Files:
src/sys/external/bsd/ena-com: ena_com.c
Log Message:
ena(4): destroy all wait_event
Code contributed by KUSABA Takeshi <[email protected]>
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/ena-com/ena_com.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/ena-com/ena_com.c
diff -u src/sys/external/bsd/ena-com/ena_com.c:1.3 src/sys/external/bsd/ena-com/ena_com.c:1.4
--- src/sys/external/bsd/ena-com/ena_com.c:1.3 Sun Nov 5 18:21:54 2023
+++ src/sys/external/bsd/ena-com/ena_com.c Sun Nov 5 18:24:31 2023
@@ -1584,13 +1584,20 @@ void ena_com_admin_destroy(struct ena_co
struct ena_com_admin_sq *sq = &admin_queue->sq;
struct ena_com_aenq *aenq = &ena_dev->aenq;
u16 size;
-
- ENA_WAIT_EVENT_DESTROY(admin_queue->comp_ctx->wait_event);
+ int i;
ENA_SPINLOCK_DESTROY(admin_queue->q_lock);
if (admin_queue->comp_ctx) {
- size_t s = admin_queue->q_depth * sizeof(struct ena_comp_ctx);
+ size_t s;
+
+ for (i = 0; i < admin_queue->q_depth; i++) {
+ struct ena_comp_ctx *comp_ctx = get_comp_ctxt(admin_queue, i, false);
+ if (comp_ctx != NULL)
+ ENA_WAIT_EVENT_DESTROY(comp_ctx->wait_event);
+ }
+
+ s = admin_queue->q_depth * sizeof(struct ena_comp_ctx);
ENA_MEM_FREE(ena_dev->dmadev, admin_queue->comp_ctx, s);
}
admin_queue->comp_ctx = NULL;