[PATCH] vbe: Allow probing the VBE bootmeth to fail in OS fixup

Simon Glass sjg at chromium.org
Thu Jan 12 17:50:19 CET 2023


This device is created when there are no bootmeths defined in the device
tree. But it cannot be probed with a device tree node.

For now, ignore a probe failure.

Signed-off-by: Simon Glass <sjg at chromium.org>
Reported-by: Karsten Merker <merker at debian.org>
Suggested-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
---

 boot/vbe_simple_os.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/boot/vbe_simple_os.c b/boot/vbe_simple_os.c
index b2041a95a30..3bd0cffc535 100644
--- a/boot/vbe_simple_os.c
+++ b/boot/vbe_simple_os.c
@@ -72,6 +72,14 @@ static int bootmeth_vbe_simple_ft_fixup(void *ctx, struct event *event)
 		chosen = oftree_path(tree, "/chosen");
 		if (!ofnode_valid(chosen))
 			continue;
+
+		ret = device_probe(dev);
+		if (ret) {
+			log_warning("VBE device '%s' failed to probe (err=%d)",
+				    dev->name, ret);
+			return 0;
+		}
+
 		ret = ofnode_add_subnode(chosen, "fwupd", &node);
 		if (ret && ret != -EEXIST)
 			return log_msg_ret("fwu", ret);
@@ -80,10 +88,6 @@ static int bootmeth_vbe_simple_ft_fixup(void *ctx, struct event *event)
 		if (ret && ret != -EEXIST)
 			return log_msg_ret("dev", ret);
 
-		ret = device_probe(dev);
-		if (ret)
-			return log_msg_ret("probe", ret);
-
 		/* Copy over the vbe properties for fwupd */
 		log_debug("Fixing up: %s\n", dev->name);
 		ret = ofnode_copy_props(dev_ofnode(dev), subnode);
-- 
2.39.0.314.g84b9a713c41-goog



More information about the U-Boot mailing list