forked from amzn/amzn-drivers
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path0012-net-ena-update-completion-queue-after-cleanup.patch
50 lines (40 loc) · 1.76 KB
/
0012-net-ena-update-completion-queue-after-cleanup.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
From 28a3fd0a5fd89a61c5992c2acc7626b844f5a60d Mon Sep 17 00:00:00 2001
From: Rafal Kozik <[email protected]>
Date: Fri, 14 Dec 2018 14:18:44 +0100
Subject: [PATCH 12/27] net/ena: update completion queue after cleanup
[ upstream commit a45462c507e98b49cb5c2302e0be3c72d2e20a1a ]
After Rx or Tx cleanup update completion queue head by calling
ena_com_update_dev_comp_head().
Fixes: 1daff5260ff8 ("net/ena: use unmasked head and tail")
Change-Id: I86e07cdaedbeefc581aed75137d06b9259a5190a
Signed-off-by: Rafal Kozik <[email protected]>
Acked-by: Michal Krawczyk <[email protected]>
---
drivers/net/ena/ena_ethdev.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index ee7605a3b6..813e95e95e 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -1922,8 +1922,10 @@ static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
desc_in_use = desc_in_use - completed + 1;
/* Burst refill to save doorbells, memory barriers, const interval */
- if (ring_size - desc_in_use > ENA_RING_DESCS_RATIO(ring_size))
+ if (ring_size - desc_in_use > ENA_RING_DESCS_RATIO(ring_size)) {
+ ena_com_update_dev_comp_head(rx_ring->ena_com_io_cq);
ena_populate_rx_queue(rx_ring, ring_size - desc_in_use);
+ }
return recv_idx;
}
@@ -2173,8 +2175,9 @@ static uint16_t eth_ena_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
if (total_tx_descs > 0) {
/* acknowledge completion of sent packets */
- ena_com_comp_ack(tx_ring->ena_com_io_sq, total_tx_descs);
tx_ring->next_to_clean = next_to_clean;
+ ena_com_comp_ack(tx_ring->ena_com_io_sq, total_tx_descs);
+ ena_com_update_dev_comp_head(tx_ring->ena_com_io_cq);
}
return sent_idx;
--
2.20.1