From 1122db717ab5443ca9043fc0d23c1e862cfb3a61 Mon Sep 17 00:00:00 2001 From: Michael Chan Date: Mon, 23 Jan 2006 16:11:42 -0800 Subject: [BNX2]: Fix nvram sizing Add code to correctly determine nvram size. Signed-off-by: Michael Chan Signed-off-by: David S. Miller --- drivers/net/bnx2.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'drivers/net/bnx2.c') diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index 7b99cf26a12..4f613b0be14 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c @@ -2724,9 +2724,16 @@ bnx2_init_nvram(struct bnx2 *bp) if (j == entry_count) { bp->flash_info = NULL; printk(KERN_ALERT PFX "Unknown flash/EEPROM type.\n"); - rc = -ENODEV; + return -ENODEV; } + val = REG_RD_IND(bp, bp->shmem_base + BNX2_SHARED_HW_CFG_CONFIG2); + val &= BNX2_SHARED_HW_CFG2_NVM_SIZE_MASK; + if (val) + bp->flash_size = val; + else + bp->flash_size = bp->flash_info->total_size; + return rc; } @@ -4809,10 +4816,10 @@ bnx2_get_eeprom_len(struct net_device *dev) { struct bnx2 *bp = dev->priv; - if (bp->flash_info == 0) + if (bp->flash_info == NULL) return 0; - return (int) bp->flash_info->total_size; + return (int) bp->flash_size; } static int -- cgit