net: hippi: use dev_addr_set()
authorJakub Kicinski <kuba@kernel.org>
Thu, 21 Oct 2021 13:12:10 +0000 (06:12 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 22 Oct 2021 17:16:09 +0000 (10:16 -0700)
Commit 406f42fa0d3c ("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>
drivers/net/hippi/rrunner.c

index 7661dbb31162bb285c821fa244aa831aa12c863b..16105292b140bbc44c97cd9370c4f6db163dea2d 100644 (file)
@@ -502,6 +502,7 @@ static unsigned int write_eeprom(struct rr_private *rrpriv,
 
 static int rr_init(struct net_device *dev)
 {
+       u8 addr[HIPPI_ALEN] __aligned(4);
        struct rr_private *rrpriv;
        struct rr_regs __iomem *regs;
        u32 sram_size, rev;
@@ -537,10 +538,11 @@ static int rr_init(struct net_device *dev)
         * other method I've seen.  -VAL
         */
 
-       *(__be16 *)(dev->dev_addr) =
+       *(__be16 *)(addr) =
          htons(rr_read_eeprom_word(rrpriv, offsetof(struct eeprom, manf.BoardULA)));
-       *(__be32 *)(dev->dev_addr+2) =
+       *(__be32 *)(addr+2) =
          htonl(rr_read_eeprom_word(rrpriv, offsetof(struct eeprom, manf.BoardULA[4])));
+       dev_addr_set(dev, addr);
 
        printk("  MAC: %pM\n", dev->dev_addr);