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.
Use an array on the stack, then call eth_hw_addr_set().
eth_hw_addr_set() is after error checking, this should
be fine, error propagates all the way to failing probe.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
 
 int aq_nic_ndev_register(struct aq_nic_s *self)
 {
+       u8 addr[ETH_ALEN];
        int err = 0;
 
        if (!self->ndev) {
 #endif
 
        mutex_lock(&self->fwreq_mutex);
-       err = self->aq_fw_ops->get_mac_permanent(self->aq_hw,
-                           self->ndev->dev_addr);
+       err = self->aq_fw_ops->get_mac_permanent(self->aq_hw, addr);
        mutex_unlock(&self->fwreq_mutex);
        if (err)
                goto err_exit;
 
+       eth_hw_addr_set(self->ndev, addr);
+
        if (!is_valid_ether_addr(self->ndev->dev_addr) ||
            !aq_nic_is_valid_ether_addr(self->ndev->dev_addr)) {
                netdev_warn(self->ndev, "MAC is invalid, will use random.");