On 10/29/2019 2:33 PM, Lokesh Vutla wrote:


On 25/10/19 10:23 PM, keerthy wrote:


On 10/25/2019 5:35 PM, Tom Rini wrote:
On Tue, Aug 06, 2019 at 04:08:31PM +0530, Keerthy wrote:

In case of multiple eth interfaces currently eth_get_dev
fetches the device based on the probe order which can be
random hence try with the alias.

Signed-off-by: Keerthy <[email protected]>
---
   net/eth-uclass.c | 4 ++--
   1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/eth-uclass.c b/net/eth-uclass.c
index 031d558625..f11c307b8c 100644
--- a/net/eth-uclass.c
+++ b/net/eth-uclass.c
@@ -68,8 +68,8 @@ struct udevice *eth_get_dev(void)
         uc_priv = eth_get_uclass_priv();
       if (!uc_priv->current)
-        eth_errno = uclass_first_device(UCLASS_ETH,
-                    &uc_priv->current);
+        eth_errno = uclass_get_device_by_seq(UCLASS_ETH,
+                             0, &uc_priv->current);
       return uc_priv->current;
   }

This breaks networking on qemu_arm / qemu_arm64 and no networking device
is found.

Okay. That is pretty strange. So seems like uclass_get_device_by_seq is failing
for some reason.

because not everyone populates aliases. You can do something like below:

        eth_errno = uclass_get_device_by_seq(UCLASS_ETH, 0, &uc_priv->current);
        if (eth_errno || !uc_priv->current)
                 eth_errno = uclass_first_device(UCLASS_ETH, &uc_priv->current);

Thanks Lokesh. I will add that check.



Thanks and regards,
Lokesh



_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to