[v2,1/5] net/i40e: fix Rx data buffer size
Checks
Commit Message
No matter what the mbuf size is, the data buffer size should not
be greater than 16K - 128.
Fixes: 4861cde46116 ("i40e: new poll mode driver")
Cc: stable@dpdk.org
Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
---
drivers/net/i40e/i40e_rxtx.c | 2 ++
drivers/net/i40e/i40e_rxtx.h | 3 +++
2 files changed, 5 insertions(+)
@@ -2904,6 +2904,8 @@ i40e_rx_queue_config(struct i40e_rx_queue *rxq)
rxq->rx_hdr_len = 0;
rxq->rx_buf_len = RTE_ALIGN_FLOOR(buf_size,
(1 << I40E_RXQ_CTX_DBUFF_SHIFT));
+ rxq->rx_buf_len = RTE_MIN(rxq->rx_buf_len,
+ I40E_RX_MAX_DATA_BUF_SIZE);
rxq->hs_mode = i40e_header_split_none;
break;
}
@@ -21,6 +21,9 @@
/* In none-PXE mode QLEN must be whole number of 32 descriptors. */
#define I40E_ALIGN_RING_DESC 32
+/* Max data buffer size must be 16K - 128 bytes */
+#define I40E_RX_MAX_DATA_BUF_SIZE (16 * 1024 - 128)
+
#define I40E_MIN_RING_DESC 64
#define I40E_MAX_RING_DESC 4096