mirror of
https://github.com/smaeul/u-boot.git
synced 2025-10-13 20:36:02 +01:00
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 <sjg@chromium.org> Fixes: 201417d700a ("bootstd: Add the bootdev uclass") Reported-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
parent
0041b1c09a
commit
965020c3f7
@ -309,6 +309,9 @@ int bootdev_get_sibling_blk(struct udevice *dev, struct udevice **blkp)
|
||||
if (ret)
|
||||
return log_msg_ret("find", ret);
|
||||
}
|
||||
ret = device_probe(blk);
|
||||
if (ret)
|
||||
return log_msg_ret("act", ret);
|
||||
*blkp = blk;
|
||||
|
||||
return 0;
|
||||
|
@ -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))
|
||||
|
Loading…
x
Reference in New Issue
Block a user