diff mbox series

[net] r8152: Use MAC address from correct device tree node

Message ID 20200807073632.63057-1-thierry.reding@gmail.com
State Accepted
Headers show
Series [net] r8152: Use MAC address from correct device tree node | expand

Commit Message

Thierry Reding Aug. 7, 2020, 7:36 a.m. UTC
From: Thierry Reding <treding@nvidia.com>

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: acb6d3771a03 ("r8152: Use MAC address from device tree if available")
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 drivers/net/usb/r8152.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

EJ Hsu Aug. 7, 2020, 8:06 a.m. UTC | #1
EJ Hsu wrote:

> From: Thierry Reding <treding@nvidia.com>
> 
> 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: acb6d3771a03 ("r8152: Use MAC address from device tree if available")
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
>  drivers/net/usb/r8152.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index
> 7d39f998535d..2b02fefd094d 100644
> --- a/drivers/net/usb/r8152.c
> +++ b/drivers/net/usb/r8152.c
> @@ -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);
> --
> 2.27.0


Reviewed-by: EJ Hsu <ejh@nvidia.com>

--nvpublic
David Miller Aug. 8, 2020, 9:27 p.m. UTC | #2
From: Thierry Reding <thierry.reding@gmail.com>
Date: Fri,  7 Aug 2020 09:36:32 +0200

> From: Thierry Reding <treding@nvidia.com>
> 
> 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: acb6d3771a03 ("r8152: Use MAC address from device tree if available")
> Signed-off-by: Thierry Reding <treding@nvidia.com>

Applied, thank you.
diff mbox series

Patch

diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
index 7d39f998535d..2b02fefd094d 100644
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
@@ -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);