Incorrect shared memory address is used while deriving the values
for tc and pri_type. Use shmem address corresponding to 'oem_cfg_func'
where the management firmare saves tc/pri_type values.

Fixes: cac6f691 ("qed: Add support for Unified Fabric Port")
Signed-off-by: Sudarsana Reddy Kalluru <sudarsana.kall...@cavium.com>
Signed-off-by: Ariel Elior <ariel.el...@cavium.com>
---
 drivers/net/ethernet/qlogic/qed/qed_mcp.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.c 
b/drivers/net/ethernet/qlogic/qed/qed_mcp.c
index 2612e3e..6f9927d 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_mcp.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.c
@@ -1514,9 +1514,10 @@ void qed_mcp_read_ufp_config(struct qed_hwfn *p_hwfn, 
struct qed_ptt *p_ptt)
        }
 
        qed_mcp_get_shmem_func(p_hwfn, p_ptt, &shmem_info, MCP_PF_ID(p_hwfn));
-       val = (port_cfg & OEM_CFG_FUNC_TC_MASK) >> OEM_CFG_FUNC_TC_OFFSET;
+       val = (shmem_info.oem_cfg_func & OEM_CFG_FUNC_TC_MASK) >>
+               OEM_CFG_FUNC_TC_OFFSET;
        p_hwfn->ufp_info.tc = (u8)val;
-       val = (port_cfg & OEM_CFG_FUNC_HOST_PRI_CTRL_MASK) >>
+       val = (shmem_info.oem_cfg_func & OEM_CFG_FUNC_HOST_PRI_CTRL_MASK) >>
                OEM_CFG_FUNC_HOST_PRI_CTRL_OFFSET;
        if (val == OEM_CFG_FUNC_HOST_PRI_CTRL_VNIC) {
                p_hwfn->ufp_info.pri_type = QED_UFP_PRI_VNIC;
-- 
1.8.3.1

Reply via email to