]> git.droids-corp.org - dpdk.git/commitdiff
net/memif: fix overwriting of head segment
authorJoyce Kong <joyce.kong@arm.com>
Wed, 25 May 2022 05:56:35 +0000 (05:56 +0000)
committerFerruh Yigit <ferruh.yigit@xilinx.com>
Wed, 25 May 2022 21:11:18 +0000 (23:11 +0200)
The 'dst_off' was reset in multi segment case.
This caused memif buffer segment to write to
beginning of mbuf, overwriting previous data.
Fix it with this patch.

Fixes: 09c7e63a71f9 ("net/memif: introduce memory interface PMD")
Cc: stable@dpdk.org
Reported-by: Ferruh Yigit <ferruh.yigit@xilinx.com>
Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
drivers/net/memif/rte_eth_memif.c

index 587ad45576ca43d8e61967887b89be56c8e1d71a..dd951b829665b68e23da4aa034149a73d82afadb 100644 (file)
@@ -348,13 +348,13 @@ eth_memif_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
                        goto no_free_bufs;
                mbuf = mbuf_head;
                mbuf->port = mq->in_port;
+               dst_off = 0;
 
 next_slot:
                s0 = cur_slot & mask;
                d0 = &ring->desc[s0];
 
                src_len = d0->length;
-               dst_off = 0;
                src_off = 0;
 
                do {