lkml.org 
[lkml]   [2018]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.9 048/219] qed: Always publish VF link from leading hwfn
    Date
    From: "Mintz, Yuval" <Yuval.Mintz@cavium.com>

    [ Upstream commit e50728effe1126eae39445ba144078b1305b7047 ]

    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>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    drivers/net/ethernet/qlogic/qed/qed_sriov.c | 13 ++++++++++---
    1 file changed, 10 insertions(+), 3 deletions(-)

    diff --git a/drivers/net/ethernet/qlogic/qed/qed_sriov.c b/drivers/net/ethernet/qlogic/qed/qed_sriov.c
    index d2d6621fe0e5..48bc5c151336 100644
    --- a/drivers/net/ethernet/qlogic/qed/qed_sriov.c
    +++ b/drivers/net/ethernet/qlogic/qed/qed_sriov.c
    @@ -3573,6 +3573,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;
    @@ -3589,9 +3590,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 */
    --
    2.14.1
    \
     
     \ /
      Last update: 2018-03-04 00:59    [W:4.738 / U:0.104 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site