Commit 867a9284 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'dev_addr-conversions-part-two'



Jakub Kicinski says:

====================
ethernet: manual netdev->dev_addr conversions (part 2)

Manual conversions of Ethernet drivers writing directly
to netdev->dev_addr (part 2 out of 3).
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 641a305b f15fef4c
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -2925,10 +2925,14 @@ static void set_params(struct mv643xx_eth_private *mp,
	struct net_device *dev = mp->dev;
	unsigned int tx_ring_size;

	if (is_valid_ether_addr(pd->mac_addr))
	if (is_valid_ether_addr(pd->mac_addr)) {
		eth_hw_addr_set(dev, pd->mac_addr);
	else
		uc_addr_get(mp, dev->dev_addr);
	} else {
		u8 addr[ETH_ALEN];

		uc_addr_get(mp, addr);
		eth_hw_addr_set(dev, addr);
	}

	mp->rx_ring_size = DEFAULT_RX_QUEUE_SIZE;
	if (pd->rx_queue_size)
+3 −1
Original line number Diff line number Diff line
@@ -3810,6 +3810,7 @@ static struct net_device *skge_devinit(struct skge_hw *hw, int port,
{
	struct skge_port *skge;
	struct net_device *dev = alloc_etherdev(sizeof(*skge));
	u8 addr[ETH_ALEN];

	if (!dev)
		return NULL;
@@ -3862,7 +3863,8 @@ static struct net_device *skge_devinit(struct skge_hw *hw, int port,
	}

	/* read the mac address */
	memcpy_fromio(dev->dev_addr, hw->regs + B2_MAC_1 + port*8, ETH_ALEN);
	memcpy_fromio(addr, hw->regs + B2_MAC_1 + port*8, ETH_ALEN);
	eth_hw_addr_set(dev, addr);

	return dev;
}
+6 −3
Original line number Diff line number Diff line
@@ -4721,9 +4721,12 @@ static struct net_device *sky2_init_netdev(struct sky2_hw *hw, unsigned port,
	 * 2) from internal registers set by bootloader
	 */
	ret = of_get_ethdev_address(hw->pdev->dev.of_node, dev);
	if (ret)
		memcpy_fromio(dev->dev_addr, hw->regs + B2_MAC_1 + port * 8,
			      ETH_ALEN);
	if (ret) {
		u8 addr[ETH_ALEN];

		memcpy_fromio(addr, hw->regs + B2_MAC_1 + port * 8, ETH_ALEN);
		eth_hw_addr_set(dev, addr);
	}

	/* if the address is invalid, use a random value */
	if (!is_valid_ether_addr(dev->dev_addr)) {
+3 −1
Original line number Diff line number Diff line
@@ -1232,6 +1232,7 @@ static int lpc_eth_drv_probe(struct platform_device *pdev)
	struct net_device *ndev;
	dma_addr_t dma_handle;
	struct resource *res;
	u8 addr[ETH_ALEN];
	int irq, ret;

	/* Setup network interface for RMII or MII mode */
@@ -1347,7 +1348,8 @@ static int lpc_eth_drv_probe(struct platform_device *pdev)
	pldat->phy_node = of_parse_phandle(np, "phy-handle", 0);

	/* Get MAC address from current HW setting (POR state is all zeros) */
	__lpc_get_mac(pldat, ndev->dev_addr);
	__lpc_get_mac(pldat, addr);
	eth_hw_addr_set(ndev, addr);

	if (!is_valid_ether_addr(ndev->dev_addr)) {
		of_get_ethdev_address(np, ndev);
+3 −1
Original line number Diff line number Diff line
@@ -463,6 +463,7 @@ netxen_read_mac_addr(struct netxen_adapter *adapter)
	u64 mac_addr;
	struct net_device *netdev = adapter->netdev;
	struct pci_dev *pdev = adapter->pdev;
	u8 addr[ETH_ALEN];

	if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) {
		if (netxen_p3_get_mac_addr(adapter, &mac_addr) != 0)
@@ -474,7 +475,8 @@ netxen_read_mac_addr(struct netxen_adapter *adapter)

	p = (unsigned char *)&mac_addr;
	for (i = 0; i < 6; i++)
		netdev->dev_addr[i] = *(p + 5 - i);
		addr[i] = *(p + 5 - i);
	eth_hw_addr_set(netdev, addr);

	memcpy(adapter->mac_addr, netdev->dev_addr, netdev->addr_len);

Loading