diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h index 8143878b5ffabb1bdd1d578944f3086e4cbc4ae1..d863b74ad2aec56baf8e5d1049785e3fe94deb0d 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h @@ -75,7 +75,7 @@ enum hns3_nic_state { #define HNS3_TX_TIMEOUT (5 * HZ) #define HNS3_RING_NAME_LEN 16 #define HNS3_BUFFER_SIZE_2048 2048 -#define HNS3_RING_MAX_PENDING 32768 +#define HNS3_RING_MAX_PENDING 32760 #define HNS3_RING_MIN_PENDING 24 #define HNS3_RING_BD_MULTIPLE 8 /* max frame size of mac */ diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c index 3dc6b65062fe7faa50bc6b987a165e0166090551..c9c0107200c861d866beee52569aec0e23ebd1bc 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c @@ -908,6 +908,9 @@ static struct hns3_enet_ring *hns3_backup_ringparam(struct hns3_nic_priv *priv) static int hns3_check_ringparam(struct net_device *ndev, struct ethtool_ringparam *param) { + if (hns3_nic_resetting(ndev)) + return -EBUSY; + if (param->rx_mini_pending || param->rx_jumbo_pending) return -EINVAL; @@ -975,7 +978,7 @@ static int hns3_set_ringparam(struct net_device *ndev, memcpy(priv->ring_data[i].ring, &tmp_rings[i], sizeof(struct hns3_enet_ring)); } else { - for (i = 0; i < h->kinfo.num_tqps; i++) + for (i = 0; i < h->kinfo.num_tqps * 2; i++) hns3_fini_ring(&tmp_rings[i]); } diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c index 1bbac2d5d05024152cf6c6b0eb430e626ebed5a7..70d2d07af18ea681dc5a40d5ee2c8b3f9ed003c7 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c @@ -2759,6 +2759,7 @@ static int hclge_get_sfp_info(struct hclge_dev *hdev, struct hclge_mac *mac) mac->speed_ability = le32_to_cpu(resp->speed_ability); mac->autoneg = resp->autoneg; mac->support_autoneg = resp->autoneg_ability; + mac->speed_type = QUERY_ACTIVE_SPEED; if (!resp->active_fec) mac->fec_mode = 0; else