summaryrefslogtreecommitdiffstats
path: root/src/drivers/net/etherfabric.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/net/etherfabric.c')
-rw-r--r--src/drivers/net/etherfabric.c10
1 files 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 ) )