From 965020c3f7e11a8ee4f53023822d30d43345abde Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sat, 28 Jan 2023 15:00:19 -0700 Subject: bootstd: Probe the block device before use In some cases the block device is obtained but is not probed, since it is a sibling of the bootdev. Make sure it is probed, so it can be used without any trouble. This fixes a bug with virtio, where the device is accessed before it has been set up by the virtio uclass. Signed-off-by: Simon Glass Fixes: 201417d700a ("bootstd: Add the bootdev uclass") Reported-by: Ilias Apalodimas --- boot/bootflow.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'boot/bootflow.c') diff --git a/boot/bootflow.c b/boot/bootflow.c index dc3f1f0c73..b8fa37ee2a 100644 --- a/boot/bootflow.c +++ b/boot/bootflow.c @@ -270,6 +270,10 @@ static int iter_incr(struct bootflow_iter *iter) if (ret) { bootflow_iter_set_dev(iter, NULL, 0); } else { + /* + * Probe the bootdev. This does not probe any attached + * block device, since they are siblings + */ ret = device_probe(dev); log_debug("probe %s %d\n", dev->name, ret); if (!log_msg_ret("probe", ret)) -- cgit v1.2.3