]> git.baikalelectronics.ru Git - kernel.git/commitdiff
r8152: Use MAC address from correct device tree node
authorThierry Reding <treding@nvidia.com>
Fri, 7 Aug 2020 07:36:32 +0000 (09:36 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 8 Aug 2020 00:13:52 +0000 (17:13 -0700)
Query the USB device's device tree node when looking for a MAC address.
The struct device embedded into the struct net_device does not have a
device tree node attached at all.

The reason why this went unnoticed is because the system where this was
tested was one of the few development units that had its OTP programmed,
as opposed to production systems where the MAC address is stored in a
separate EEPROM and is passed via device tree by the firmware.

Reported-by: EJ Hsu <ejh@nvidia.com>
Fixes: 54864358826d ("r8152: Use MAC address from device tree if available")
Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: EJ Hsu <ejh@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/r8152.c

index 7d39f998535dc11ae5276bcbfde2550f9e6c0657..2b02fefd094d53fc1ed2342625c8f479f5652cae 100644 (file)
@@ -1504,7 +1504,7 @@ static int determine_ethernet_addr(struct r8152 *tp, struct sockaddr *sa)
 
        sa->sa_family = dev->type;
 
-       ret = eth_platform_get_mac_address(&dev->dev, sa->sa_data);
+       ret = eth_platform_get_mac_address(&tp->udev->dev, sa->sa_data);
        if (ret < 0) {
                if (tp->version == RTL_VER_01) {
                        ret = pla_ocp_read(tp, PLA_IDR, 8, sa->sa_data);