[PATCH] mbuf: fix API to copy mbuf dynamic fields
Morten Brørup
mb at smartsharesystems.com
Wed Jun 26 14:23:28 CEST 2024
> From: Shijith Thotton [mailto:sthotton at marvell.com]
> Sent: Wednesday, 26 June 2024 14.08
>
> Fixed rte_mbuf_dynfield_copy() API to copy dynamic fields from one mbuf
> to another. When RTE_IOVA_AS_PA is not defined during the build, an
> additional dynamic field (dynfield2) becomes available. This field
> should be conditionally copied to ensure the complete duplication of
> dynamic fields between mbufs. This patch fixes the same.
>
> see https://bugs.dpdk.org/show_bug.cgi?id=1472
>
> Bugzilla ID: 1472
> Fixes: 03b57eb7ab9a ("mbuf: add second dynamic field member")
> Cc: stable at dpdk.org
>
> Signed-off-by: Shijith Thotton <sthotton at marvell.com>
Thank you for fixing this bug.
> ---
> lib/mbuf/rte_mbuf.h | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/lib/mbuf/rte_mbuf.h b/lib/mbuf/rte_mbuf.h
> index 4c4722e002..dc6d1237ac 100644
> --- a/lib/mbuf/rte_mbuf.h
> +++ b/lib/mbuf/rte_mbuf.h
> @@ -1120,6 +1120,9 @@ static inline void
> rte_mbuf_dynfield_copy(struct rte_mbuf *mdst, const struct rte_mbuf *msrc)
> {
> memcpy(&mdst->dynfield1, msrc->dynfield1, sizeof(mdst->dynfield1));
> +#if !RTE_IOVA_IN_MBUF
> + mdst->dynfield2 = msrc->dynfield2;
> +#endif
dynfield2 is located before dynfield1 in the mbuf struct; suggest copy dynfield2 before dynfield1.
> }
>
> /* internal */
> --
> 2.25.1
With or without suggested change,
Reviewed-by: Morten Brørup <mb at smartsharesystems.com>
More information about the dev
mailing list