diff --git a/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c b/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c index 0b9ce861c98155b584de3dec1aaa2830bc60f886..98e230d4e3c14f79f6a61c6de4085c2805e05f48 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c @@ -1824,7 +1824,7 @@ static int hinic_set_pauseparam(struct net_device *netdev, err = hinic_set_pause_info(nic_dev->hwdev, nic_pause); if (err) { nicif_err(nic_dev, drv, netdev, "Failed to set pauseparam\n"); - return -EFAULT; + return err; } nicif_info(nic_dev, drv, netdev, "Set pause options, tx: %s, rx: %s\n", diff --git a/drivers/net/ethernet/huawei/hinic/hinic_nic_cfg.c b/drivers/net/ethernet/huawei/hinic/hinic_nic_cfg.c index 5cdcc3ec16c0ab985923cd24cd44e874f5daa6e2..90b16ea9658d39b0902b0847c31c107a35d4160f 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_nic_cfg.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_nic_cfg.c @@ -1029,6 +1029,10 @@ int hinic_set_pause_info(void *hwdev, struct nic_pause_config nic_pause) return -EINVAL; nic_cfg = &nic_hwdev->nic_io->nic_cfg; + if (nic_cfg->pfc_en) { + nic_err(nic_hwdev->dev_hdl, "Failed to set pause, please disable pfc first\n"); + return -EPERM; + } down(&nic_cfg->cfg_lock);