Skip to content

Commit

Permalink
qed: Always publish VF link from leading hwfn
Browse files Browse the repository at this point in the history
The link information exists only on the leading hwfn,
but some of its derivatives [e.g., min/max rate] need to
be configured for each hwfn.
When re-basing the VF link view, use the leading hwfn
information as basis for all existing hwfns to allow
said configurations to stick.

Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Mintz, Yuval authored and David S. Miller committed Mar 22, 2017
1 parent e99a21c commit e50728e
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions drivers/net/ethernet/qlogic/qed/qed_sriov.c
Original file line number Diff line number Diff line change
Expand Up @@ -3945,6 +3945,7 @@ static int qed_get_vf_config(struct qed_dev *cdev,

void qed_inform_vf_link_state(struct qed_hwfn *hwfn)
{
struct qed_hwfn *lead_hwfn = QED_LEADING_HWFN(hwfn->cdev);
struct qed_mcp_link_capabilities caps;
struct qed_mcp_link_params params;
struct qed_mcp_link_state link;
Expand All @@ -3961,9 +3962,15 @@ void qed_inform_vf_link_state(struct qed_hwfn *hwfn)
if (!vf_info)
continue;

memcpy(&params, qed_mcp_get_link_params(hwfn), sizeof(params));
memcpy(&link, qed_mcp_get_link_state(hwfn), sizeof(link));
memcpy(&caps, qed_mcp_get_link_capabilities(hwfn),
/* Only hwfn0 is actually interested in the link speed.
* But since only it would receive an MFW indication of link,
* need to take configuration from it - otherwise things like
* rate limiting for hwfn1 VF would not work.
*/
memcpy(&params, qed_mcp_get_link_params(lead_hwfn),
sizeof(params));
memcpy(&link, qed_mcp_get_link_state(lead_hwfn), sizeof(link));
memcpy(&caps, qed_mcp_get_link_capabilities(lead_hwfn),
sizeof(caps));

/* Modify link according to the VF's configured link state */
Expand Down

0 comments on commit e50728e

Please sign in to comment.