
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 j-keerthy@ti.com
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