net: eth-uclass: ignore unavailable devices
authorMichael Walle <michael@walle.cc>
Mon, 21 Oct 2019 23:03:10 +0000 (01:03 +0200)
committerJoe Hershberger <joe.hershberger@ni.com>
Mon, 9 Dec 2019 15:47:42 +0000 (09:47 -0600)
device_probe() may fail in which case the seq_id will be -1. Don't
display these devices during startup. While this is only a cosmetic
change, the return value of eth_initialize() will also change to the
actual number of available devices. The return value is only used in
spl_net to decide whether there are any devices to boot from. So
returning only available devices is also more correct in that case.

Signed-off-by: Michael Walle <michael@walle.cc>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
net/eth-uclass.c

index 9fe4096..ed81cbd 100644 (file)
@@ -420,20 +420,25 @@ int eth_initialize(void)
 
                bootstage_mark(BOOTSTAGE_ID_NET_ETH_INIT);
                do {
-                       if (num_devices)
-                               printf(", ");
+                       if (dev->seq != -1) {
+                               if (num_devices)
+                                       printf(", ");
 
-                       printf("eth%d: %s", dev->seq, dev->name);
+                               printf("eth%d: %s", dev->seq, dev->name);
 
-                       if (ethprime && dev == prime_dev)
-                               printf(" [PRIME]");
+                               if (ethprime && dev == prime_dev)
+                                       printf(" [PRIME]");
+                       }
 
                        eth_write_hwaddr(dev);
 
+                       if (dev->seq != -1)
+                               num_devices++;
                        uclass_next_device_check(&dev);
-                       num_devices++;
                } while (dev);
 
+               if (!num_devices)
+                       printf("No ethernet found.\n");
                putc('\n');
        }