If an implementation of the hunt() method calls bootdev_hunt() itself, an infinite recursion may occur.
Set the sequence bit before invoking hunt(). Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com> --- boot/bootdev-uclass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boot/bootdev-uclass.c b/boot/bootdev-uclass.c index 3791ebfcb42..da757a49481 100644 --- a/boot/bootdev-uclass.c +++ b/boot/bootdev-uclass.c @@ -791,6 +791,7 @@ static int bootdev_hunt_drv(struct bootdev_hunter *info, uint seq, bool show) return log_msg_ret("std", ret); if (!(std->hunters_used & BIT(seq))) { + std->hunters_used |= BIT(seq); if (show) printf("Hunting with: %s\n", uclass_get_name(info->uclass)); @@ -801,7 +802,6 @@ static int bootdev_hunt_drv(struct bootdev_hunter *info, uint seq, bool show) if (ret && ret != -ENOENT) return ret; } - std->hunters_used |= BIT(seq); } return 0; -- 2.48.1