Commit e90202ed authored by Denis Bolotin's avatar Denis Bolotin Committed by David S. Miller

qed: Fix overriding offload_tc by protocols without APP TLV

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: default avatarDenis Bolotin <denis.bolotin@cavium.com>
Signed-off-by: default avatarMichal Kalderon <michal.kalderon@cavium.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9aaa4e8b
...@@ -191,7 +191,7 @@ qed_dcbx_dp_protocol(struct qed_hwfn *p_hwfn, struct qed_dcbx_results *p_data) ...@@ -191,7 +191,7 @@ qed_dcbx_dp_protocol(struct qed_hwfn *p_hwfn, struct qed_dcbx_results *p_data)
static void static void
qed_dcbx_set_params(struct qed_dcbx_results *p_data, qed_dcbx_set_params(struct qed_dcbx_results *p_data,
struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt, 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 dcbx_protocol_type type,
enum qed_pci_personality personality) enum qed_pci_personality personality)
{ {
...@@ -210,7 +210,7 @@ qed_dcbx_set_params(struct qed_dcbx_results *p_data, ...@@ -210,7 +210,7 @@ qed_dcbx_set_params(struct qed_dcbx_results *p_data,
p_data->arr[type].dont_add_vlan0 = true; p_data->arr[type].dont_add_vlan0 = true;
/* QM reconf data */ /* 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); qed_hw_info_set_offload_tc(&p_hwfn->hw_info, tc);
/* Configure dcbx vlan priority in doorbell block for roce EDPM */ /* Configure dcbx vlan priority in doorbell block for roce EDPM */
...@@ -225,7 +225,7 @@ qed_dcbx_set_params(struct qed_dcbx_results *p_data, ...@@ -225,7 +225,7 @@ qed_dcbx_set_params(struct qed_dcbx_results *p_data,
static void static void
qed_dcbx_update_app_info(struct qed_dcbx_results *p_data, qed_dcbx_update_app_info(struct qed_dcbx_results *p_data,
struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt, 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 dcbx_protocol_type type)
{ {
enum qed_pci_personality personality; enum qed_pci_personality personality;
...@@ -240,7 +240,7 @@ qed_dcbx_update_app_info(struct qed_dcbx_results *p_data, ...@@ -240,7 +240,7 @@ qed_dcbx_update_app_info(struct qed_dcbx_results *p_data,
personality = qed_dcbx_app_update[i].personality; 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); prio, tc, type, personality);
} }
} }
...@@ -319,8 +319,8 @@ qed_dcbx_process_tlv(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt, ...@@ -319,8 +319,8 @@ qed_dcbx_process_tlv(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
enable = true; enable = true;
} }
qed_dcbx_update_app_info(p_data, p_hwfn, p_ptt, enable, qed_dcbx_update_app_info(p_data, p_hwfn, p_ptt, true,
priority, tc, type); enable, priority, tc, type);
} }
} }
...@@ -341,7 +341,7 @@ qed_dcbx_process_tlv(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt, ...@@ -341,7 +341,7 @@ qed_dcbx_process_tlv(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
continue; continue;
enable = (type == DCBX_PROTOCOL_ETH) ? false : !!dcbx_version; 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); priority, tc, type);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment