lkml.org 
[lkml]   [2018]   [Dec]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 019/118] qed: Fix overriding offload_tc by protocols without APP TLV
    Date
    4.19-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    [ Upstream commit e90202ed1cf9672c48a363c84a929932ebfe6fc0 ]

    The TC received from APP TLV is stored in offload_tc, and should not be
    set by protocols which did not receive an APP TLV. Fixed the condition
    when overriding the offload_tc.

    Signed-off-by: Denis Bolotin <denis.bolotin@cavium.com>
    Signed-off-by: Michal Kalderon <michal.kalderon@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/qlogic/qed/qed_dcbx.c | 14 +++++++-------
    1 file changed, 7 insertions(+), 7 deletions(-)

    diff --git a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c
    index f5459de6d60a..5900a506bf8d 100644
    --- a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c
    +++ b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c
    @@ -191,7 +191,7 @@ qed_dcbx_dp_protocol(struct qed_hwfn *p_hwfn, struct qed_dcbx_results *p_data)
    static void
    qed_dcbx_set_params(struct qed_dcbx_results *p_data,
    struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
    - bool enable, u8 prio, u8 tc,
    + bool app_tlv, bool enable, u8 prio, u8 tc,
    enum dcbx_protocol_type type,
    enum qed_pci_personality personality)
    {
    @@ -210,7 +210,7 @@ qed_dcbx_set_params(struct qed_dcbx_results *p_data,
    p_data->arr[type].dont_add_vlan0 = true;

    /* QM reconf data */
    - if (p_hwfn->hw_info.personality == personality)
    + if (app_tlv && p_hwfn->hw_info.personality == personality)
    qed_hw_info_set_offload_tc(&p_hwfn->hw_info, tc);

    /* Configure dcbx vlan priority in doorbell block for roce EDPM */
    @@ -225,7 +225,7 @@ qed_dcbx_set_params(struct qed_dcbx_results *p_data,
    static void
    qed_dcbx_update_app_info(struct qed_dcbx_results *p_data,
    struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
    - bool enable, u8 prio, u8 tc,
    + bool app_tlv, bool enable, u8 prio, u8 tc,
    enum dcbx_protocol_type type)
    {
    enum qed_pci_personality personality;
    @@ -240,7 +240,7 @@ qed_dcbx_update_app_info(struct qed_dcbx_results *p_data,

    personality = qed_dcbx_app_update[i].personality;

    - qed_dcbx_set_params(p_data, p_hwfn, p_ptt, enable,
    + qed_dcbx_set_params(p_data, p_hwfn, p_ptt, app_tlv, enable,
    prio, tc, type, personality);
    }
    }
    @@ -318,8 +318,8 @@ qed_dcbx_process_tlv(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
    enable = true;
    }

    - qed_dcbx_update_app_info(p_data, p_hwfn, p_ptt, enable,
    - priority, tc, type);
    + qed_dcbx_update_app_info(p_data, p_hwfn, p_ptt, true,
    + enable, priority, tc, type);
    }
    }

    @@ -340,7 +340,7 @@ qed_dcbx_process_tlv(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
    continue;

    enable = (type == DCBX_PROTOCOL_ETH) ? false : !!dcbx_version;
    - qed_dcbx_update_app_info(p_data, p_hwfn, p_ptt, enable,
    + qed_dcbx_update_app_info(p_data, p_hwfn, p_ptt, false, enable,
    priority, tc, type);
    }

    --
    2.19.1


    \
     
     \ /
      Last update: 2018-12-11 16:55    [W:4.262 / U:0.260 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site