1
0
mirror of https://xff.cz/git/u-boot/ synced 2026-01-06 19:49:18 +01:00

Merge patch series "bootstd: Try again to resolve infinite-loop bug"

Simon Glass <sjg@chromium.org> says:

This little series tries to resolve a problem found with an earlier
fix.
This commit is contained in:
Tom Rini
2024-08-27 10:09:11 -06:00

View File

@@ -632,7 +632,7 @@ int bootdev_next_label(struct bootflow_iter *iter, struct udevice **devp,
int bootdev_next_prio(struct bootflow_iter *iter, struct udevice **devp)
{
struct udevice *dev = *devp, *last_dev = NULL;
struct udevice *dev = *devp;
bool found;
int ret;
@@ -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,23 +683,13 @@ int bootdev_next_prio(struct bootflow_iter *iter, struct udevice **devp)
}
} else {
ret = device_probe(dev);
if (!ret)
last_dev = dev;
if (ret) {
log_warning("Device '%s' failed to probe\n",
if (ret)
log_debug("Device '%s' failed to probe\n",
dev->name);
if (last_dev == dev) {
/*
* We have already tried this device
* and it failed to probe. Give up.
*/
return log_msg_ret("probe", ret);
}
last_dev = dev;
dev = NULL;
}
else
found = true;
}
} while (!dev);
} while (!found);
*devp = dev;