Skip to content

Commit

Permalink
be2net: fix range check for set_qos for a VF
Browse files Browse the repository at this point in the history
Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Ajit Khaparde authored and David S. Miller committed Dec 30, 2011
1 parent 80817cb commit 94f434c
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions drivers/net/ethernet/emulex/benet/be_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -978,18 +978,22 @@ static int be_set_vf_tx_rate(struct net_device *netdev,
if (!sriov_enabled(adapter))
return -EPERM;

if (vf >= adapter->num_vfs || rate < 0)
if (vf >= adapter->num_vfs)
return -EINVAL;

if (rate > 10000)
rate = 10000;
if (rate < 100 || rate > 10000) {
dev_err(&adapter->pdev->dev,
"tx rate must be between 100 and 10000 Mbps\n");
return -EINVAL;
}

adapter->vf_cfg[vf].tx_rate = rate;
status = be_cmd_set_qos(adapter, rate / 10, vf + 1);

if (status)
dev_info(&adapter->pdev->dev,
dev_err(&adapter->pdev->dev,
"tx rate %d on VF %d failed\n", rate, vf);
else
adapter->vf_cfg[vf].tx_rate = rate;
return status;
}

Expand Down

0 comments on commit 94f434c

Please sign in to comment.