Skip to content

Commit

Permalink
sfc: Remove fallback for invalid permanent MAC address
Browse files Browse the repository at this point in the history
By the time we look at the MAC address in efx_probe_port(), either the
driver or the firmware has already validated the board configuration.
The possibility of having an invalid MAC address just isn't worth
considering.  It certainly isn't worth having a compile-time option
for this.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
  • Loading branch information
Ben Hutchings committed Jan 27, 2012
1 parent cdb08f8 commit e332bcb
Showing 1 changed file with 2 additions and 30 deletions.
32 changes: 2 additions & 30 deletions drivers/net/ethernet/sfc/efx.c
Original file line number Diff line number Diff line change
Expand Up @@ -122,15 +122,6 @@ static int napi_weight = 64;
*/
static unsigned int efx_monitor_interval = 1 * HZ;

/* This controls whether or not the driver will initialise devices
* with invalid MAC addresses stored in the EEPROM or flash. If true,
* such devices will be initialised with a random locally-generated
* MAC address. This allows for loading the sfc_mtd driver to
* reprogram the flash, even if the flash contents (including the MAC
* address) have previously been erased.
*/
static unsigned int allow_bad_hwaddr;

/* Initial interrupt moderation settings. They can be modified after
* module load with ethtool.
*
Expand Down Expand Up @@ -916,7 +907,6 @@ static void efx_mac_work(struct work_struct *data)

static int efx_probe_port(struct efx_nic *efx)
{
unsigned char *perm_addr;
int rc;

netif_dbg(efx, probe, efx->net_dev, "create port\n");
Expand All @@ -929,28 +919,10 @@ static int efx_probe_port(struct efx_nic *efx)
if (rc)
return rc;

/* Sanity check MAC address */
perm_addr = efx->net_dev->perm_addr;
if (is_valid_ether_addr(perm_addr)) {
memcpy(efx->net_dev->dev_addr, perm_addr, ETH_ALEN);
} else {
netif_err(efx, probe, efx->net_dev, "invalid MAC address %pM\n",
perm_addr);
if (!allow_bad_hwaddr) {
rc = -EINVAL;
goto err;
}
random_ether_addr(efx->net_dev->dev_addr);
netif_info(efx, probe, efx->net_dev,
"using locally-generated MAC %pM\n",
efx->net_dev->dev_addr);
}
/* Initialise MAC address to permanent address */
memcpy(efx->net_dev->dev_addr, efx->net_dev->perm_addr, ETH_ALEN);

return 0;

err:
efx->type->remove_port(efx);
return rc;
}

static int efx_init_port(struct efx_nic *efx)
Expand Down

0 comments on commit e332bcb

Please sign in to comment.