aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorEilon Greenstein <eilong@broadcom.com>2009-07-28 20:20:10 -0400
committerDavid S. Miller <davem@davemloft.net>2009-07-30 15:19:25 -0400
commit7d0446c2349da54f2967fb34d984db572fbfc6ac (patch)
tree8056e629f5a4e4ffd410d763945bd175e42b061b /drivers
parentc1f1a06f926acc267c62a26d5d7435a3b5c7e429 (diff)
bnx2x: WoL only with current MAC address
In some cases with 57711E, depending on the functions unload sequence, other functions MAC address could have been used to wake the system as well. Make sure to block all but the current function if WoL is required by changing the mode to single function WoL. Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/bnx2x_main.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index b47b53115499..424541239f52 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -7354,17 +7354,17 @@ static int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode)
7354 7354
7355 for (i = 0; i < MC_HASH_SIZE; i++) 7355 for (i = 0; i < MC_HASH_SIZE; i++)
7356 REG_WR(bp, MC_HASH_OFFSET(bp, i), 0); 7356 REG_WR(bp, MC_HASH_OFFSET(bp, i), 0);
7357
7358 REG_WR(bp, MISC_REG_E1HMF_MODE, 0);
7357 } 7359 }
7358 7360
7359 if (unload_mode == UNLOAD_NORMAL) 7361 if (unload_mode == UNLOAD_NORMAL)
7360 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS; 7362 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS;
7361 7363
7362 else if (bp->flags & NO_WOL_FLAG) { 7364 else if (bp->flags & NO_WOL_FLAG)
7363 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_MCP; 7365 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_MCP;
7364 if (CHIP_IS_E1H(bp))
7365 REG_WR(bp, MISC_REG_E1HMF_MODE, 0);
7366 7366
7367 } else if (bp->wol) { 7367 else if (bp->wol) {
7368 u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0; 7368 u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0;
7369 u8 *mac_addr = bp->dev->dev_addr; 7369 u8 *mac_addr = bp->dev->dev_addr;
7370 u32 val; 7370 u32 val;