As in previous commit, restore the default rx_buf_len value if the user passes 0. Also initialise rx_buf_len_max. Signed-off-by: Pavel Begunkov --- drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c index a5eefa28454c..3d3acc2b9402 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c @@ -10,6 +10,9 @@ #include "hns3_enet.h" #include "hns3_ethtool.h" +#define RX_BUF_LEN_2K 2048 +#define RX_BUF_LEN_4K 4096 + /* tqp related stats */ #define HNS3_TQP_STAT(_string, _member) { \ .stats_string = _string, \ @@ -684,6 +687,7 @@ static void hns3_get_ringparam(struct net_device *netdev, param->tx_pending = priv->ring[0].desc_num; param->rx_pending = priv->ring[rx_queue_index].desc_num; kernel_param->rx_buf_len = priv->ring[rx_queue_index].buf_size; + kernel_param->rx_buf_len_max = RX_BUF_LEN_4K; kernel_param->tx_push = test_bit(HNS3_NIC_STATE_TX_PUSH_ENABLE, &priv->state); } @@ -1113,9 +1117,6 @@ static int hns3_check_ringparam(struct net_device *ndev, struct ethtool_ringparam *param, struct kernel_ethtool_ringparam *kernel_param) { -#define RX_BUF_LEN_2K 2048 -#define RX_BUF_LEN_4K 4096 - struct hns3_nic_priv *priv = netdev_priv(ndev); if (hns3_nic_resetting(ndev) || !priv->ring) { @@ -1127,6 +1128,9 @@ static int hns3_check_ringparam(struct net_device *ndev, if (param->rx_mini_pending || param->rx_jumbo_pending) return -EINVAL; + if (!kernel_param->rx_buf_len) + kernel_param->rx_buf_len = RX_BUF_LEN_2K; + if (kernel_param->rx_buf_len != RX_BUF_LEN_2K && kernel_param->rx_buf_len != RX_BUF_LEN_4K) { netdev_err(ndev, "Rx buf len only support 2048 and 4096\n"); -- 2.49.0