Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 351591
b: refs/heads/master
c: 80bfe5c
h: refs/heads/master
i:
  351589: 491527d
  351587: 94002ea
  351583: 1effa1a
v: v3
  • Loading branch information
Yuval Mintz authored and David S. Miller committed Jan 23, 2013
1 parent 6966e1c commit a3c61c0
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c3146eb676e7cce254e98b1d179a4c82227a9d26
refs/heads/master: 80bfe5cc1b8c320247a21ff40d8c139c5f3bbcaf
14 changes: 11 additions & 3 deletions trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
Original file line number Diff line number Diff line change
Expand Up @@ -2805,7 +2805,7 @@ int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode, bool keep_link)
val & ~DRV_FLAGS_CAPABILITIES_LOADED_L2);
}

if (IS_PF(bp) &&
if (IS_PF(bp) && bp->recovery_state != BNX2X_RECOVERY_DONE &&
(bp->state == BNX2X_STATE_CLOSED ||
bp->state == BNX2X_STATE_ERROR)) {
/* We can get here if the driver has been unloaded
Expand All @@ -2825,8 +2825,16 @@ int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode, bool keep_link)
return -EINVAL;
}

/*
* It's important to set the bp->state to the value different from
/* Nothing to do during unload if previous bnx2x_nic_load()
* have not completed succesfully - all resourses are released.
*
* we can get here only after unsuccessful ndo_* callback, during which
* dev->IFF_UP flag is still on.
*/
if (bp->state == BNX2X_STATE_CLOSED || bp->state == BNX2X_STATE_ERROR)
return 0;

/* It's important to set the bp->state to the value different from
* BNX2X_STATE_OPEN and only then stop the Tx. Otherwise bnx2x_tx_int()
* may restart the Tx from the NAPI context (see bnx2x_tx_int()).
*/
Expand Down

0 comments on commit a3c61c0

Please sign in to comment.