Skip to content

Commit

Permalink
ethernet: alteon: use eth_hw_addr_set()
Browse files Browse the repository at this point in the history
Commit 406f42f ("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.

Break the address apart into an array on the stack, then call
eth_hw_addr_set().

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Jakub Kicinski authored and David S. Miller committed Oct 16, 2021
1 parent 0d4c751 commit ffaeca6
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions drivers/net/ethernet/alteon/acenic.c
Original file line number Diff line number Diff line change
Expand Up @@ -869,6 +869,7 @@ static int ace_init(struct net_device *dev)
int board_idx, ecode = 0;
short i;
unsigned char cache_size;
u8 addr[ETH_ALEN];

ap = netdev_priv(dev);
regs = ap->regs;
Expand Down Expand Up @@ -988,12 +989,13 @@ static int ace_init(struct net_device *dev)
writel(mac1, &regs->MacAddrHi);
writel(mac2, &regs->MacAddrLo);

dev->dev_addr[0] = (mac1 >> 8) & 0xff;
dev->dev_addr[1] = mac1 & 0xff;
dev->dev_addr[2] = (mac2 >> 24) & 0xff;
dev->dev_addr[3] = (mac2 >> 16) & 0xff;
dev->dev_addr[4] = (mac2 >> 8) & 0xff;
dev->dev_addr[5] = mac2 & 0xff;
addr[0] = (mac1 >> 8) & 0xff;
addr[1] = mac1 & 0xff;
addr[2] = (mac2 >> 24) & 0xff;
addr[3] = (mac2 >> 16) & 0xff;
addr[4] = (mac2 >> 8) & 0xff;
addr[5] = mac2 & 0xff;
eth_hw_addr_set(dev, addr);

printk("MAC: %pM\n", dev->dev_addr);

Expand Down

0 comments on commit ffaeca6

Please sign in to comment.