mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 10:49:33 +00:00
ethernet: sxgbe: use eth_hw_addr_set()
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.
Read the address 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>
This commit is contained in:
parent
298b0e0c5f
commit
15fa05bf41
1 changed files with 6 additions and 3 deletions
|
@ -931,10 +931,13 @@ static int sxgbe_get_hw_features(struct sxgbe_priv_data * const priv)
|
||||||
static void sxgbe_check_ether_addr(struct sxgbe_priv_data *priv)
|
static void sxgbe_check_ether_addr(struct sxgbe_priv_data *priv)
|
||||||
{
|
{
|
||||||
if (!is_valid_ether_addr(priv->dev->dev_addr)) {
|
if (!is_valid_ether_addr(priv->dev->dev_addr)) {
|
||||||
|
u8 addr[ETH_ALEN];
|
||||||
|
|
||||||
priv->hw->mac->get_umac_addr((void __iomem *)
|
priv->hw->mac->get_umac_addr((void __iomem *)
|
||||||
priv->ioaddr,
|
priv->ioaddr, addr, 0);
|
||||||
priv->dev->dev_addr, 0);
|
if (is_valid_ether_addr(addr))
|
||||||
if (!is_valid_ether_addr(priv->dev->dev_addr))
|
eth_hw_addr_set(priv->dev, addr);
|
||||||
|
else
|
||||||
eth_hw_addr_random(priv->dev);
|
eth_hw_addr_random(priv->dev);
|
||||||
}
|
}
|
||||||
dev_info(priv->device, "device MAC address %pM\n",
|
dev_info(priv->device, "device MAC address %pM\n",
|
||||||
|
|
Loading…
Reference in a new issue