diff options
| author | Ben Hutchings <bhutchings@solarflare.com> | 2010-12-02 13:48:28 +0000 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-12-03 09:08:11 -0800 | 
| commit | 7e300bc8e6736d41e7b92978f415572ac60fd59b (patch) | |
| tree | b48dc8243946bd08e3c7eef5171d910218a43987 /drivers | |
| parent | 02ebc26865c2755720d2ede90a5ab27c45741823 (diff) | |
sfc: Store MAC address from NVRAM in net_device::perm_addr
For some reason we failed to make this change when perm_addr was
introduced.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/net/sfc/efx.c | 8 | ||||
| -rw-r--r-- | drivers/net/sfc/falcon.c | 2 | ||||
| -rw-r--r-- | drivers/net/sfc/net_driver.h | 2 | ||||
| -rw-r--r-- | drivers/net/sfc/siena.c | 8 | 
4 files changed, 7 insertions, 13 deletions
| diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c index 7e820d90e6ba..f3e4043d70ee 100644 --- a/drivers/net/sfc/efx.c +++ b/drivers/net/sfc/efx.c @@ -909,6 +909,7 @@ 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"); @@ -922,11 +923,12 @@ static int efx_probe_port(struct efx_nic *efx)  		return rc;  	/* Sanity check MAC address */ -	if (is_valid_ether_addr(efx->mac_address)) { -		memcpy(efx->net_dev->dev_addr, efx->mac_address, ETH_ALEN); +	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", -			  efx->mac_address); +			  perm_addr);  		if (!allow_bad_hwaddr) {  			rc = -EINVAL;  			goto err; diff --git a/drivers/net/sfc/falcon.c b/drivers/net/sfc/falcon.c index 07f684ed2d9b..70e4f7dcce81 100644 --- a/drivers/net/sfc/falcon.c +++ b/drivers/net/sfc/falcon.c @@ -1297,7 +1297,7 @@ static int falcon_probe_nvconfig(struct efx_nic *efx)  	}  	/* Read the MAC addresses */ -	memcpy(efx->mac_address, nvconfig->mac_address[0], ETH_ALEN); +	memcpy(efx->net_dev->perm_addr, nvconfig->mac_address[0], ETH_ALEN);  	netif_dbg(efx, probe, efx->net_dev, "PHY is %d phy_id %d\n",  		  efx->phy_type, efx->mdio.prtad); diff --git a/drivers/net/sfc/net_driver.h b/drivers/net/sfc/net_driver.h index 6dd5e6d65dfe..0d19fbfc5c2c 100644 --- a/drivers/net/sfc/net_driver.h +++ b/drivers/net/sfc/net_driver.h @@ -678,7 +678,6 @@ struct efx_filter_state;   * @stats_buffer: DMA buffer for statistics   * @stats_lock: Statistics update lock. Serialises statistics fetches   * @mac_op: MAC interface - * @mac_address: Permanent MAC address   * @phy_type: PHY type   * @phy_op: PHY interface   * @phy_data: PHY private data (including PHY-specific stats) @@ -762,7 +761,6 @@ struct efx_nic {  	spinlock_t stats_lock;  	struct efx_mac_operations *mac_op; -	unsigned char mac_address[ETH_ALEN];  	unsigned int phy_type;  	struct efx_phy_operations *phy_op; diff --git a/drivers/net/sfc/siena.c b/drivers/net/sfc/siena.c index b31598079c3d..bf8456176443 100644 --- a/drivers/net/sfc/siena.c +++ b/drivers/net/sfc/siena.c @@ -194,13 +194,7 @@ static int siena_reset_hw(struct efx_nic *efx, enum reset_type method)  static int siena_probe_nvconfig(struct efx_nic *efx)  { -	int rc; - -	rc = efx_mcdi_get_board_cfg(efx, efx->mac_address, NULL); -	if (rc) -		return rc; - -	return 0; +	return efx_mcdi_get_board_cfg(efx, efx->net_dev->perm_addr, NULL);  }  static int siena_probe_nic(struct efx_nic *efx) | 
