diff options
author | Arnd Bergmann <arnd@arndb.de> | 2018-11-02 11:36:24 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-11-03 22:27:33 -0400 |
commit | 92619210529a6b77b2cbedbadba3ff5eaa6e28ed (patch) | |
tree | 75d341c7fdb4c8a81d784cd33b6ce573ad4b3bf7 /drivers/net | |
parent | e8ccbb7d2f53c62e14b889faaa3f6f809b657278 (diff) |
qed: fix link config error handling
gcc-8 notices that qed_mcp_get_transceiver_data() may fail to
return a result to the caller:
drivers/net/ethernet/qlogic/qed/qed_mcp.c: In function 'qed_mcp_trans_speed_mask':
drivers/net/ethernet/qlogic/qed/qed_mcp.c:1955:2: error: 'transceiver_type' may be used uninitialized in this function [-Werror=maybe-uninitialized]
When an error is returned by qed_mcp_get_transceiver_data(), we
should propagate that to the caller of qed_mcp_trans_speed_mask()
rather than continuing with uninitialized data.
Fixes: c56a8be7e7aa ("qed: Add supported link and advertise link to display in ethtool.")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/qlogic/qed/qed_mcp.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.c b/drivers/net/ethernet/qlogic/qed/qed_mcp.c index f40f654398a0..a96364df4320 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_mcp.c +++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.c | |||
@@ -1944,9 +1944,12 @@ int qed_mcp_trans_speed_mask(struct qed_hwfn *p_hwfn, | |||
1944 | struct qed_ptt *p_ptt, u32 *p_speed_mask) | 1944 | struct qed_ptt *p_ptt, u32 *p_speed_mask) |
1945 | { | 1945 | { |
1946 | u32 transceiver_type, transceiver_state; | 1946 | u32 transceiver_type, transceiver_state; |
1947 | int ret; | ||
1947 | 1948 | ||
1948 | qed_mcp_get_transceiver_data(p_hwfn, p_ptt, &transceiver_state, | 1949 | ret = qed_mcp_get_transceiver_data(p_hwfn, p_ptt, &transceiver_state, |
1949 | &transceiver_type); | 1950 | &transceiver_type); |
1951 | if (ret) | ||
1952 | return ret; | ||
1950 | 1953 | ||
1951 | if (qed_is_transceiver_ready(transceiver_state, transceiver_type) == | 1954 | if (qed_is_transceiver_ready(transceiver_state, transceiver_type) == |
1952 | false) | 1955 | false) |