qed: Avoid implicit enum conversion in qed_ooo_submit_tx_buffers
authorNathan Chancellor <natechancellor@gmail.com>
Thu, 4 Oct 2018 16:39:20 +0000 (09:39 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 24 Nov 2019 07:20:10 +0000 (08:20 +0100)
[ Upstream commit 8fa74e3c49204bdf788d99ef71840490cccc210d ]

Clang warns when one enumerated type is implicitly converted to another.

drivers/net/ethernet/qlogic/qed/qed_ll2.c:799:32: warning: implicit
conversion from enumeration type 'enum core_tx_dest' to different
enumeration type 'enum qed_ll2_tx_dest' [-Wenum-conversion]
                tx_pkt.tx_dest = p_ll2_conn->tx_dest;
                               ~ ~~~~~~~~~~~~^~~~~~~
1 warning generated.

Fix this by using a switch statement to convert between the enumerated
values since they are not 1 to 1, which matches how the rest of the
driver handles this conversion.

Link: https://github.com/ClangBuiltLinux/linux/issues/125
Suggested-by: Tomer Tayar <Tomer.Tayar@cavium.com>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Acked-by: Tomer Tayar <Tomer.Tayar@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_ll2.c

index 015de1e..2847509 100644 (file)
@@ -796,7 +796,18 @@ qed_ooo_submit_tx_buffers(struct qed_hwfn *p_hwfn,
                tx_pkt.vlan = p_buffer->vlan;
                tx_pkt.bd_flags = bd_flags;
                tx_pkt.l4_hdr_offset_w = l4_hdr_offset_w;
-               tx_pkt.tx_dest = p_ll2_conn->tx_dest;
+               switch (p_ll2_conn->tx_dest) {
+               case CORE_TX_DEST_NW:
+                       tx_pkt.tx_dest = QED_LL2_TX_DEST_NW;
+                       break;
+               case CORE_TX_DEST_LB:
+                       tx_pkt.tx_dest = QED_LL2_TX_DEST_LB;
+                       break;
+               case CORE_TX_DEST_DROP:
+               default:
+                       tx_pkt.tx_dest = QED_LL2_TX_DEST_DROP;
+                       break;
+               }
                tx_pkt.first_frag = first_frag;
                tx_pkt.first_frag_len = p_buffer->packet_length;
                tx_pkt.cookie = p_buffer;