net/memif: fix overwriting of head segment
Checks
Commit Message
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 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On 5/25/2022 6:56 AM, Joyce Kong wrote:
> 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>
Applied to dpdk-next-net/main, thanks.
@@ -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 {