]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bnx2x: access cfc_del_event only if the opcode is CFC_DEL
authorMichal Schmidt <mschmidt@redhat.com>
Wed, 2 Mar 2016 12:47:08 +0000 (13:47 +0100)
committerChuck Anderson <chuck.anderson@oracle.com>
Fri, 8 Jul 2016 02:28:46 +0000 (19:28 -0700)
It's not really a bug, but it was odd that bnx2x_eq_int() read the
message data as if it were a cfc_del_event regardless of the event type.
It's cleaner to access only the appropriate member of union event_data
after checking the event opcode.

Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Orabug: 23718192
Signed-off-by: Manjunath Govindashetty <manjunath.govindashetty@oracle.com>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c

index f715ba5f44ce8855872f47f197de72d044406876..62b615291f6ca6ca45a594319f020a5ae6400bb4 100644 (file)
@@ -5477,9 +5477,6 @@ static void bnx2x_eq_int(struct bnx2x *bp)
                        goto next_spqe;
                }
 
-               /* elem CID originates from FW; actually LE */
-               cid = SW_CID((__force __le32)
-                            elem->message.data.cfc_del_event.cid);
                opcode = elem->message.opcode;
 
                /* handle eq element */
@@ -5502,6 +5499,11 @@ static void bnx2x_eq_int(struct bnx2x *bp)
                         * we may want to verify here that the bp state is
                         * HALTING
                         */
+
+                       /* elem CID originates from FW; actually LE */
+                       cid = SW_CID((__force __le32)
+                                    elem->message.data.cfc_del_event.cid);
+
                        DP(BNX2X_MSG_SP,
                           "got delete ramrod for MULTI[%d]\n", cid);