Refer to commit 8a3ef4b89e6d ("net/txgbe: fix Rx buffer size in
config register").

When round up buffer size to 1K, to configure the register, hardware
will receive packets exceeding the buffer size in scatter mode. It will
cause a segment fault in the receive function.

Fixes: 711a06e896ba ("net/ngbe: add datapath init for VF device")
Cc: [email protected]
Signed-off-by: Jiawen Wu <[email protected]>
---
 drivers/net/ngbe/ngbe_rxtx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ngbe/ngbe_rxtx.c b/drivers/net/ngbe/ngbe_rxtx.c
index 03ada844bf..66d72c88df 100644
--- a/drivers/net/ngbe/ngbe_rxtx.c
+++ b/drivers/net/ngbe/ngbe_rxtx.c
@@ -3559,7 +3559,7 @@ ngbevf_dev_rx_init(struct rte_eth_dev *dev)
                 */
                buf_size = (uint16_t)(rte_pktmbuf_data_room_size(rxq->mb_pool) -
                        RTE_PKTMBUF_HEADROOM);
-               buf_size = ROUND_UP(buf_size, 1 << 10);
+               buf_size = ROUND_DOWN(buf_size, 1 << 10);
                srrctl |= NGBE_RXCFG_PKTLEN(buf_size);
 
                /*
-- 
2.48.1

Reply via email to