aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEilon Greenstein <eilong@broadcom.com>2008-08-25 18:22:46 -0400
committerDavid S. Miller <davem@davemloft.net>2008-08-25 18:22:46 -0400
commit76b190c592d952b37227f057a14f39e316754156 (patch)
treed5ec7a442d32cd217ab472421f5a5ee63a271290
parent7add905f93fa62d11d45fb1d2d05980661f2ccde (diff)
bnx2x: Minimize lock time
After iSCSI boot, the HW lock should only protect the flag so only the first function will reset the chip and not then entire chip reset process Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/bnx2x_main.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index 2e207b8eea97..9972d0c02677 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -6824,6 +6824,10 @@ static void __devinit bnx2x_undi_unload(struct bnx2x *bp)
6824 */ 6824 */
6825 bnx2x_acquire_hw_lock(bp, HW_LOCK_RESOURCE_UNDI); 6825 bnx2x_acquire_hw_lock(bp, HW_LOCK_RESOURCE_UNDI);
6826 val = REG_RD(bp, DORQ_REG_NORM_CID_OFST); 6826 val = REG_RD(bp, DORQ_REG_NORM_CID_OFST);
6827 if (val == 0x7)
6828 REG_WR(bp, DORQ_REG_NORM_CID_OFST, 0);
6829 bnx2x_release_hw_lock(bp, HW_LOCK_RESOURCE_UNDI);
6830
6827 if (val == 0x7) { 6831 if (val == 0x7) {
6828 u32 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS; 6832 u32 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS;
6829 /* save our func */ 6833 /* save our func */
@@ -6901,7 +6905,6 @@ static void __devinit bnx2x_undi_unload(struct bnx2x *bp)
6901 (SHMEM_RD(bp, func_mb[bp->func].drv_mb_header) & 6905 (SHMEM_RD(bp, func_mb[bp->func].drv_mb_header) &
6902 DRV_MSG_SEQ_NUMBER_MASK); 6906 DRV_MSG_SEQ_NUMBER_MASK);
6903 } 6907 }
6904 bnx2x_release_hw_lock(bp, HW_LOCK_RESOURCE_UNDI);
6905 } 6908 }
6906} 6909}
6907 6910