提交 e332bcb3 编写于 作者: B Ben Hutchings

sfc: Remove fallback for invalid permanent MAC address

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: NBen Hutchings <bhutchings@solarflare.com>
上级 cdb08f8f
...@@ -122,15 +122,6 @@ static int napi_weight = 64; ...@@ -122,15 +122,6 @@ static int napi_weight = 64;
*/ */
static unsigned int efx_monitor_interval = 1 * HZ; 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 /* Initial interrupt moderation settings. They can be modified after
* module load with ethtool. * module load with ethtool.
* *
...@@ -916,7 +907,6 @@ static void efx_mac_work(struct work_struct *data) ...@@ -916,7 +907,6 @@ static void efx_mac_work(struct work_struct *data)
static int efx_probe_port(struct efx_nic *efx) static int efx_probe_port(struct efx_nic *efx)
{ {
unsigned char *perm_addr;
int rc; int rc;
netif_dbg(efx, probe, efx->net_dev, "create port\n"); netif_dbg(efx, probe, efx->net_dev, "create port\n");
...@@ -929,28 +919,10 @@ static int efx_probe_port(struct efx_nic *efx) ...@@ -929,28 +919,10 @@ static int efx_probe_port(struct efx_nic *efx)
if (rc) if (rc)
return rc; return rc;
/* Sanity check MAC address */ /* Initialise MAC address to permanent address */
perm_addr = efx->net_dev->perm_addr; memcpy(efx->net_dev->dev_addr, efx->net_dev->perm_addr, ETH_ALEN);
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);
}
return 0; return 0;
err:
efx->type->remove_port(efx);
return rc;
} }
static int efx_init_port(struct efx_nic *efx) static int efx_init_port(struct efx_nic *efx)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册