ethernet: use eth_hw_addr_set() in unmaintained drivers
Commit 406f42fa0d ("net-next: When a bond have a massive amount
of VLANs...") introduced a rbtree for faster Ethernet address look
up. To maintain netdev->dev_addr in this tree we need to make all
the writes to it got through appropriate helpers.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
0e9e7598c6
commit
4abd7cffc0
@@ -348,13 +348,15 @@ static void ks8842_reset_hw(struct ks8842_adapter *adapter)
|
||||
ks8842_write16(adapter, 32, 0x1, REG_SW_ID_AND_ENABLE);
|
||||
}
|
||||
|
||||
static void ks8842_read_mac_addr(struct ks8842_adapter *adapter, u8 *dest)
|
||||
static void ks8842_init_mac_addr(struct ks8842_adapter *adapter)
|
||||
{
|
||||
u8 addr[ETH_ALEN];
|
||||
int i;
|
||||
u16 mac;
|
||||
|
||||
for (i = 0; i < ETH_ALEN; i++)
|
||||
dest[ETH_ALEN - i - 1] = ks8842_read8(adapter, 2, REG_MARL + i);
|
||||
addr[ETH_ALEN - i - 1] = ks8842_read8(adapter, 2, REG_MARL + i);
|
||||
eth_hw_addr_set(adapter->netdev, addr);
|
||||
|
||||
if (adapter->conf_flags & MICREL_KS884X) {
|
||||
/*
|
||||
@@ -1195,7 +1197,7 @@ static int ks8842_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
if (i == netdev->addr_len) {
|
||||
ks8842_read_mac_addr(adapter, netdev->dev_addr);
|
||||
ks8842_init_mac_addr(adapter);
|
||||
|
||||
if (!is_valid_ether_addr(netdev->dev_addr))
|
||||
eth_hw_addr_random(netdev);
|
||||
|
||||
@@ -165,6 +165,7 @@ static void ks8851_read_mac_addr(struct net_device *dev)
|
||||
{
|
||||
struct ks8851_net *ks = netdev_priv(dev);
|
||||
unsigned long flags;
|
||||
u8 addr[ETH_ALEN];
|
||||
u16 reg;
|
||||
int i;
|
||||
|
||||
@@ -172,9 +173,10 @@ static void ks8851_read_mac_addr(struct net_device *dev)
|
||||
|
||||
for (i = 0; i < ETH_ALEN; i += 2) {
|
||||
reg = ks8851_rdreg16(ks, KS_MAR(i));
|
||||
dev->dev_addr[i] = reg >> 8;
|
||||
dev->dev_addr[i + 1] = reg & 0xff;
|
||||
addr[i] = reg >> 8;
|
||||
addr[i + 1] = reg & 0xff;
|
||||
}
|
||||
eth_hw_addr_set(dev, addr);
|
||||
|
||||
ks8851_unlock(ks, &flags);
|
||||
}
|
||||
|
||||
@@ -7007,9 +7007,12 @@ static int pcidev_init(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
if (MAIN_PORT == i)
|
||||
eth_hw_addr_set(dev, hw_priv->hw.override_addr);
|
||||
else {
|
||||
eth_hw_addr_set(dev, sw->other_addr);
|
||||
u8 addr[ETH_ALEN];
|
||||
|
||||
ether_addr_copy(addr, sw->other_addr);
|
||||
if (ether_addr_equal(sw->other_addr, hw->override_addr))
|
||||
dev->dev_addr[5] += port->first_port;
|
||||
addr[5] += port->first_port;
|
||||
eth_hw_addr_set(dev, addr);
|
||||
}
|
||||
|
||||
dev->netdev_ops = &netdev_ops;
|
||||
|
||||
Reference in New Issue
Block a user