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

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@chromium.org Reported-by: Karsten Merker merker@debian.org Suggested-by: Heinrich Schuchardt xypron.glpk@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);

On 1/12/23 17:50, Simon Glass wrote:
This device is created when there are no bootmeths defined in the device tree. But it cannot be probed with a device tree node.
%s/with/without/
(Actually a node is not enough. You also need a bunch of properties, too.)
Fixes: a56f663f0707 ("vbe: Add info about the VBE device to the fwupd node")
For now, ignore a probe failure.
Signed-off-by: Simon Glass sjg@chromium.org Reported-by: Karsten Merker merker@debian.org Suggested-by: Heinrich Schuchardt xypron.glpk@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);
I would not like to read this message every time I boot.
log_debug() should be enough.
Best regards
Heinrich
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);
participants (2)
-
Heinrich Schuchardt
-
Simon Glass