bnx2x: Fix AER semaphore release

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>
This commit is contained in:
Yuval Mintz 2013-03-26 23:28:03 +00:00 committed by David S. Miller
parent 40893fd0fd
commit 60cde81f9d

View file

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