aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/emulex/benet/be_main.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index 10f2313edbe7..fe702c1c866d 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -978,18 +978,22 @@ static int be_set_vf_tx_rate(struct net_device *netdev,
978 if (!sriov_enabled(adapter)) 978 if (!sriov_enabled(adapter))
979 return -EPERM; 979 return -EPERM;
980 980
981 if (vf >= adapter->num_vfs || rate < 0) 981 if (vf >= adapter->num_vfs)
982 return -EINVAL; 982 return -EINVAL;
983 983
984 if (rate > 10000) 984 if (rate < 100 || rate > 10000) {
985 rate = 10000; 985 dev_err(&adapter->pdev->dev,
986 "tx rate must be between 100 and 10000 Mbps\n");
987 return -EINVAL;
988 }
986 989
987 adapter->vf_cfg[vf].tx_rate = rate;
988 status = be_cmd_set_qos(adapter, rate / 10, vf + 1); 990 status = be_cmd_set_qos(adapter, rate / 10, vf + 1);
989 991
990 if (status) 992 if (status)
991 dev_info(&adapter->pdev->dev, 993 dev_err(&adapter->pdev->dev,
992 "tx rate %d on VF %d failed\n", rate, vf); 994 "tx rate %d on VF %d failed\n", rate, vf);
995 else
996 adapter->vf_cfg[vf].tx_rate = rate;
993 return status; 997 return status;
994} 998}
995 999