48 lines
1.4 KiB
Diff
48 lines
1.4 KiB
Diff
From: Ajit Khaparde <ajit.khaparde@emulex.com>
|
|
Date: Fri, 30 Dec 2011 12:15:30 +0000
|
|
Subject: [PATCH 24/58] be2net: fix range check for set_qos for a VF
|
|
|
|
commit 94f434c2055db5fe20f10d4e0ec50ab395e1f62b upstream.
|
|
|
|
Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
---
|
|
drivers/net/ethernet/emulex/benet/be_main.c | 14 +++++++++-----
|
|
1 file 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 acef082..cd7f5e3 100644
|
|
--- a/drivers/net/ethernet/emulex/benet/be_main.c
|
|
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
|
|
@@ -970,18 +970,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;
|
|
}
|
|
|
|
--
|
|
1.7.10
|
|
|