diff --git a/boot/bootdev-uclass.c b/boot/bootdev-uclass.c index 15a8a3555c6..807f8dfb064 100644 --- a/boot/bootdev-uclass.c +++ b/boot/bootdev-uclass.c @@ -640,6 +640,7 @@ int bootdev_next_prio(struct bootflow_iter *iter, struct udevice **devp) *devp = NULL; log_debug("next prio %d: dev=%p/%s\n", iter->cur_prio, dev, dev ? dev->name : "none"); + found = false; do { /* * Don't probe devices here since they may not be of the @@ -682,13 +683,13 @@ int bootdev_next_prio(struct bootflow_iter *iter, struct udevice **devp) } } else { ret = device_probe(dev); - if (ret) { + if (ret) log_debug("Device '%s' failed to probe\n", dev->name); - dev = NULL; - } + else + found = true; } - } while (!dev); + } while (!found); *devp = dev;