> static int hns3_check_ringparam(struct net_device *ndev, > - struct ethtool_ringparam *param) > + struct ethtool_ringparam *param, > + struct kernel_ethtool_ringparam *kernel_param) > { > +#define RX_BUF_LEN_2K 2048 > +#define RX_BUF_LEN_4K 4096 include/linux/size.h #define SZ_2K 0x00000800 #define SZ_4K 0x00001000 > if (hns3_nic_resetting(ndev)) > return -EBUSY; > > if (param->rx_mini_pending || param->rx_jumbo_pending) > return -EINVAL; > > + 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"); > + return -EINVAL; Same question i asked in the cover note. MTU is 4K, i set rx buf len to 2K. What happens? Should there be an EINVAL here? Andrew