[dpdk-dev] [PATCH] net/mlx4: fix mbuf poisoning in debug code

Adrien Mazarguil adrien.mazarguil at 6wind.com
Wed Jul 5 16:35:47 CEST 2017


On Wed, Jul 05, 2017 at 02:49:22PM +0300, Vasily Philipov wrote:
> In debug mode, all mbuf ol_flags are temporarily enabled while sitting in
> the Rx queue to detect otherwise silent data corruption, however some of
> them are special (indirect and control) and must be cleared before
> returning mbufs to the pool to avoid crashing.
> 
> Fixes: 7fae69eeff13 ("mlx4: new poll mode driver")
> CC: stable at dpdk.org
> 
> Signed-off-by: Vasily Philipov <vasilyf at mellanox.com>

Thanks Vasily, except for the minor nit below,

Acked-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com>

> ---
>  drivers/net/mlx4/mlx4.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
> index 16cafae..03c5c98 100644
> --- a/drivers/net/mlx4/mlx4.c
> +++ b/drivers/net/mlx4/mlx4.c
> @@ -3008,6 +3008,13 @@ struct txq_mp2mr_mbuf_check_data {
>  			NB_SEGS(rep) = 0x2a;
>  			PORT(rep) = 0x2a;
>  			rep->ol_flags = -1;
> +			/*
> +			 * Clear special flags in membuf to avoid

"membuf" => "mbuf"

> +			 * crashing while freeing.
> +			 */
> +			rep->ol_flags &=
> +				~(uint64_t)(IND_ATTACHED_MBUF |
> +					    CTRL_MBUF_FLAG);
>  #endif
>  			assert(rep->buf_len == seg->buf_len);
>  			/* Reconfigure sge to use rep instead of seg. */
> -- 
> 1.8.3.1
> 

-- 
Adrien Mazarguil
6WIND


More information about the dev mailing list