aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet
diff options
context:
space:
mode:
authorAjit Khaparde <ajit.khaparde@emulex.com>2011-12-30 07:15:30 -0500
committerDavid S. Miller <davem@davemloft.net>2011-12-30 17:19:21 -0500
commit94f434c2055db5fe20f10d4e0ec50ab395e1f62b (patch)
treee64ef47b5b826dc98e6f6224b715892e460aa58d /drivers/net/ethernet
parent80817cbf5ac13da76f3ee2b9259f26c09b385e84 (diff)
be2net: fix range check for set_qos for a VF
Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet')
-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