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: sta...@dpdk.org > > Signed-off-by: Vasily Philipov <vasi...@mellanox.com>
Thanks Vasily, except for the minor nit below, Acked-by: Adrien Mazarguil <adrien.mazarg...@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