From a497e16767dc81f0c5aef2c9102f4ca5bbbf93f9 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 18 Dec 2006 15:28:34 +0000 Subject: [PATCH] The "increment MAC address by port number" hack applies only to EF1. --- src/drivers/net/etherfabric.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/drivers/net/etherfabric.c b/src/drivers/net/etherfabric.c index 9040f0cf..e760b124 100644 --- a/src/drivers/net/etherfabric.c +++ b/src/drivers/net/etherfabric.c @@ -1218,8 +1218,13 @@ static int ef1002_read_eeprom ( struct efab_nic *efab ) { struct i2c_interface *i2c = &efab->ef1002_i2c.i2c; struct i2c_device *i2cdev = &efab->ef1002_eeprom; - return ( i2c->read ( i2c, i2cdev, EF1_EEPROM_HWADDR_OFFSET, - efab->mac_addr, sizeof ( efab->mac_addr ) ) == 0); + if ( i2c->read ( i2c, i2cdev, EF1_EEPROM_HWADDR_OFFSET, + efab->mac_addr, sizeof ( efab->mac_addr ) ) != 0 ) + return 0; + + efab->mac_addr[ETH_ALEN-1] += efab->port; + + return 1; } /** RX descriptor */ @@ -3194,7 +3199,6 @@ static int efab_init_nic ( struct efab_nic *efab ) { /* Read MAC address from EEPROM */ if ( ! efab->op->read_eeprom ( efab ) ) return 0; - efab->mac_addr[ETH_ALEN-1] += efab->port; /* Initialise MAC and wait for link up */ if ( ! efab_init_mac ( efab ) )