1.When the setting mtu is higher than flbufsz, the mtu doesn't work.
But it doesn't have any notice about this restrict.
2.when the setting mtu isn't in the range, it doesn't have any notice.

This patch will add the notice about these restrict.

Signed-off-by: Peng Zhang <peng.zh...@corigine.com>
Signed-off-by: Chaoyong He <chaoyong...@corigine.com>
Signed-off-by: Louis Peens <louis.pe...@corigine.com>
---
 drivers/net/nfp/nfp_common.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c
index f8978e803a..2ea9853548 100644
--- a/drivers/net/nfp/nfp_common.c
+++ b/drivers/net/nfp/nfp_common.c
@@ -956,6 +956,20 @@ nfp_net_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
                return -EBUSY;
        }
 
+       /* the setting mtu is in the range */
+       if (mtu < 68 || mtu > hw->max_mtu) {
+               PMD_DRV_LOG(ERR, "the setting mtu cannot be less than 68 or 
more than %d",
+                           hw->max_mtu);
+               return -ERANGE;
+       }
+
+       /* the setting mtu is lower than flbufsz */
+       if (mtu > hw->flbufsz) {
+               PMD_DRV_LOG(ERR, "the setting mtu must be lower than current 
mbufsize of %d",
+                           hw->flbufsz);
+               return -ERANGE;
+       }
+
        /* writing to configuration space */
        nn_cfg_writel(hw, NFP_NET_CFG_MTU, mtu);
 
-- 
2.27.0

Reply via email to