OSDN Git Service

qed: Fix use of incorrect shmem address.
authorSudarsana Reddy Kalluru <sudarsana.kalluru@cavium.com>
Fri, 1 Jun 2018 01:47:37 +0000 (18:47 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Jun 2018 14:10:46 +0000 (10:10 -0400)
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.Kalluru@cavium.com>
Signed-off-by: Ariel Elior <ariel.elior@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qed/qed_mcp.c

index 2612e3e..6f9927d 100644 (file)
@@ -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;