staging: wfx: fix setting MAC address from DT
authorJérôme Pouiller <jerome.pouiller@silabs.com>
Thu, 17 Oct 2019 09:40:06 +0000 (09:40 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 26 Oct 2019 18:42:32 +0000 (20:42 +0200)
MAC address read from chip is unconditionally used even if a MAC
address is configured in device tree.

Reported-by: Marc Dorval <marc.dorval@silabs.com>
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20191017093954.657-5-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wfx/main.c

index 205b5bc8872ec0c03a62641d11998ae7980ffc13..18f07f7ad347d6a5ce7ccb0e136a6cbd94f1d87b 100644 (file)
@@ -410,8 +410,9 @@ int wfx_probe(struct wfx_dev *wdev)
                if (!IS_ERR_OR_NULL(macaddr)) {
                        ether_addr_copy(wdev->addresses[i].addr, macaddr);
                        wdev->addresses[i].addr[ETH_ALEN - 1] += i;
+               } else {
+                       ether_addr_copy(wdev->addresses[i].addr, wdev->hw_caps.mac_addr[i]);
                }
-               ether_addr_copy(wdev->addresses[i].addr, wdev->hw_caps.mac_addr[i]);
                if (!is_valid_ether_addr(wdev->addresses[i].addr)) {
                        dev_warn(wdev->dev, "using random MAC address\n");
                        eth_random_addr(wdev->addresses[i].addr);