| From foo@baz Thu Dec 21 09:02:40 CET 2017 |
| From: Jacob Keller <jacob.e.keller@intel.com> |
| Date: Fri, 11 Aug 2017 11:14:58 -0700 |
| Subject: fm10k: fix mis-ordered parameters in declaration for .ndo_set_vf_bw |
| |
| From: Jacob Keller <jacob.e.keller@intel.com> |
| |
| |
| [ Upstream commit 3e256ac5b1ec307e5dd5a4c99fbdbc651446c738 ] |
| |
| We've had support for setting both a minimum and maximum bandwidth via |
| .ndo_set_vf_bw since commit 883a9ccbae56 ("fm10k: Add support for SR-IOV |
| to driver", 2014-09-20). |
| |
| Likely because we do not support minimum rates, the declaration |
| mis-ordered the "unused" parameter, which causes warnings when analyzed |
| with cppcheck. |
| |
| Fix this warning by properly declaring the min_rate and max_rate |
| variables in the declaration and definition (rather than using |
| "unused"). Also rename "rate" to max_rate so as to clarify that we only |
| support setting the maximum rate. |
| |
| Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> |
| Tested-by: Krishneil Singh <krishneil.k.singh@intel.com> |
| Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> |
| Signed-off-by: Sasha Levin <alexander.levin@verizon.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/intel/fm10k/fm10k.h | 4 ++-- |
| drivers/net/ethernet/intel/fm10k/fm10k_iov.c | 9 +++++---- |
| 2 files changed, 7 insertions(+), 6 deletions(-) |
| |
| --- a/drivers/net/ethernet/intel/fm10k/fm10k.h |
| +++ b/drivers/net/ethernet/intel/fm10k/fm10k.h |
| @@ -508,8 +508,8 @@ s32 fm10k_iov_update_pvid(struct fm10k_i |
| int fm10k_ndo_set_vf_mac(struct net_device *netdev, int vf_idx, u8 *mac); |
| int fm10k_ndo_set_vf_vlan(struct net_device *netdev, |
| int vf_idx, u16 vid, u8 qos, __be16 vlan_proto); |
| -int fm10k_ndo_set_vf_bw(struct net_device *netdev, int vf_idx, int rate, |
| - int unused); |
| +int fm10k_ndo_set_vf_bw(struct net_device *netdev, int vf_idx, |
| + int __always_unused min_rate, int max_rate); |
| int fm10k_ndo_get_vf_config(struct net_device *netdev, |
| int vf_idx, struct ifla_vf_info *ivi); |
| |
| --- a/drivers/net/ethernet/intel/fm10k/fm10k_iov.c |
| +++ b/drivers/net/ethernet/intel/fm10k/fm10k_iov.c |
| @@ -482,7 +482,7 @@ int fm10k_ndo_set_vf_vlan(struct net_dev |
| } |
| |
| int fm10k_ndo_set_vf_bw(struct net_device *netdev, int vf_idx, |
| - int __always_unused unused, int rate) |
| + int __always_unused min_rate, int max_rate) |
| { |
| struct fm10k_intfc *interface = netdev_priv(netdev); |
| struct fm10k_iov_data *iov_data = interface->iov_data; |
| @@ -493,14 +493,15 @@ int fm10k_ndo_set_vf_bw(struct net_devic |
| return -EINVAL; |
| |
| /* rate limit cannot be less than 10Mbs or greater than link speed */ |
| - if (rate && ((rate < FM10K_VF_TC_MIN) || rate > FM10K_VF_TC_MAX)) |
| + if (max_rate && |
| + (max_rate < FM10K_VF_TC_MIN || max_rate > FM10K_VF_TC_MAX)) |
| return -EINVAL; |
| |
| /* store values */ |
| - iov_data->vf_info[vf_idx].rate = rate; |
| + iov_data->vf_info[vf_idx].rate = max_rate; |
| |
| /* update hardware configuration */ |
| - hw->iov.ops.configure_tc(hw, vf_idx, rate); |
| + hw->iov.ops.configure_tc(hw, vf_idx, max_rate); |
| |
| return 0; |
| } |