Signed-off-by: speech_white <humin29@huawei.com> (cherry picked from commit cde27f08d4dbefb7f03bfca6229f95cb88bf08a2)
37 lines
1.3 KiB
Diff
37 lines
1.3 KiB
Diff
From 2c1857b46ec66643f127301b9466a3b93fa2d42b Mon Sep 17 00:00:00 2001
|
|
From: "Min Hu (Connor)" <humin29@huawei.com>
|
|
Date: Fri, 28 Jan 2022 10:25:33 +0800
|
|
Subject: [PATCH] net/bonding: fix reference count on mbufs
|
|
|
|
In bonding Tx broadcast mode, Packets should be sent by every slave,
|
|
but only one mbuf exits. The solution is to increment reference count
|
|
on mbufs, but it ignores multi segments.
|
|
|
|
This patch fixed it by adding reference for every segment in multi
|
|
segments Tx scenario.
|
|
|
|
Fixes: 2efb58cbab6e ("bond: new link bonding library")
|
|
Cc: stable@dpdk.org
|
|
|
|
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
|
|
---
|
|
drivers/net/bonding/rte_eth_bond_pmd.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
|
|
index d2fcfad676..bfa931098e 100644
|
|
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
|
|
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
|
|
@@ -1318,7 +1318,7 @@ bond_ethdev_tx_burst_broadcast(void *queue, struct rte_mbuf **bufs,
|
|
|
|
/* Increment reference count on mbufs */
|
|
for (i = 0; i < nb_pkts; i++)
|
|
- rte_mbuf_refcnt_update(bufs[i], num_of_slaves - 1);
|
|
+ rte_pktmbuf_refcnt_update(bufs[i], num_of_slaves - 1);
|
|
|
|
/* Transmit burst on each active slave */
|
|
for (i = 0; i < num_of_slaves; i++) {
|
|
--
|
|
2.33.0
|
|
|