bnx2x: Fix AER semaphore release
authorYuval Mintz <yuvalmin@broadcom.com>
Tue, 26 Mar 2013 23:28:03 +0000 (23:28 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 27 Mar 2013 16:48:31 +0000 (12:48 -0400)
Commit 7fa6f34 "AER revised" erroneously inserted an error-flow
in which a semaphore is released even though the attempt to take it
has failed.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c

index 2c6a2a6987bbf24da4291ee03dfdd9477e786d62..5c5a3273338222b956f449080c7390e9c41d294f 100644 (file)
@@ -10070,8 +10070,8 @@ static int bnx2x_prev_unload(struct bnx2x *bp)
                        /* If Path is marked by EEH, ignore unload status */
                        aer = !!(bnx2x_prev_path_get_entry(bp) &&
                                 bnx2x_prev_path_get_entry(bp)->aer);
+                       up(&bnx2x_prev_sem);
                }
-               up(&bnx2x_prev_sem);
 
                if (fw == FW_MSG_CODE_DRV_UNLOAD_COMMON || aer) {
                        rc = bnx2x_prev_unload_common(bp);