Testpmd tries to calculate mbuf size based on "max Rx packet size" and "max MTU segment number". When driver set a "nb_mtu_seg_max" to zero, it causes division by zero segmentation fault in testpmd.
If the PMD set "nb_mtu_seg_max" to zero, testpmd shouldn't try to calculate the mbuf size. Fixes: 33f9630fc23d ("app/testpmd: create mbuf based on max supported segments") Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com> --- Cc: Sunil Kumar Kori <sk...@marvell.com> Cc: YufengX Mo <yufengx...@intel.com> --- app/test-pmd/testpmd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 0f2fffec3..4e958bc44 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -1174,7 +1174,8 @@ init_config(void) /* Check for maximum number of segments per MTU. Accordingly * update the mbuf data size. */ - if (port->dev_info.rx_desc_lim.nb_mtu_seg_max != UINT16_MAX) { + if (port->dev_info.rx_desc_lim.nb_mtu_seg_max != UINT16_MAX && + port->dev_info.rx_desc_lim.nb_mtu_seg_max != 0) { data_size = rx_mode.max_rx_pkt_len / port->dev_info.rx_desc_lim.nb_mtu_seg_max; -- 2.21.0