staging: use eth_hw_addr_set() in orphan drivers
authorJakub Kicinski <kuba@kernel.org>
Tue, 19 Oct 2021 17:12:43 +0000 (10:12 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Oct 2021 17:33:59 +0000 (19:33 +0200)
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.

Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Link: https://lore.kernel.org/r/20211019171243.1412240-9-kuba@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/gdm724x/gdm_lte.c
drivers/staging/octeon/ethernet.c
drivers/staging/wlan-ng/prism2sta.c

index e390c92..493ed48 100644 (file)
@@ -867,6 +867,7 @@ int register_lte_device(struct phy_dev *phy_dev,
        struct nic *nic;
        struct net_device *net;
        char pdn_dev_name[16];
+       u8 addr[ETH_ALEN];
        int ret = 0;
        u8 index;
 
@@ -893,11 +894,12 @@ int register_lte_device(struct phy_dev *phy_dev,
                nic->phy_dev = phy_dev;
                nic->nic_id = index;
 
-               form_mac_address(net->dev_addr,
+               form_mac_address(addr,
                                 nic->src_mac_addr,
                                 nic->dest_mac_addr,
                                 mac_address,
                                 index);
+               eth_hw_addr_set(net, addr);
 
                SET_NETDEV_DEV(net, dev);
                SET_NETDEV_DEVTYPE(net, &wwan_type);
index 5d24c1b..bf8c544 100644 (file)
@@ -350,7 +350,7 @@ static int cvm_oct_set_mac_filter(struct net_device *dev)
            (cvmx_helper_interface_get_mode(interface) !=
                CVMX_HELPER_INTERFACE_MODE_SPI)) {
                int i;
-               u8 *ptr = dev->dev_addr;
+               const u8 *ptr = dev->dev_addr;
                u64 mac = 0;
                int index = INDEX(priv->port);
 
index 1be4330..daa7cc4 100644 (file)
@@ -585,6 +585,7 @@ static int prism2sta_getcardinfo(struct wlandevice *wlandev)
        struct hfa384x *hw = wlandev->priv;
        u16 temp;
        u8 snum[HFA384x_RID_NICSERIALNUMBER_LEN];
+       u8 addr[ETH_ALEN];
 
        /* Collect version and compatibility info */
        /*  Some are critical, some are not */
@@ -855,11 +856,12 @@ static int prism2sta_getcardinfo(struct wlandevice *wlandev)
 
        /* Collect the MAC address */
        result = hfa384x_drvr_getconfig(hw, HFA384x_RID_CNFOWNMACADDR,
-                                       wlandev->netdev->dev_addr, ETH_ALEN);
+                                       addr, ETH_ALEN);
        if (result != 0) {
                netdev_err(wlandev->netdev, "Failed to retrieve mac address\n");
                goto failed;
        }
+       eth_hw_addr_set(wlandev->netdev, addr);
 
        /* short preamble is always implemented */
        wlandev->nsdcaps |= P80211_NSDCAP_SHORT_PREAMBLE;