[dpdk-dev] [PATCH] net/mlx4: fix mbuf poisoning in debug code
Vasily Philipov
vasilyf at mellanox.com
Wed Jul 5 13:49:22 CEST 2017
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>
---
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
+ * 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
More information about the dev
mailing list