Set devp even if probing fails.

Without the patch the following problem occurs:
If the first block device is not probed successfully no block
device is passed by bootefi to the EFI executable.

The problem was reported by Andreas Färber in
https://lists.denx.de/pipermail/u-boot/2017-April/287432.html

For testing I used an odroid-c2 with a dts including
&sd_emmc_a {
        status = "okay";
}
This device does not exist on the board and cannot be initialized.

Reported-by: Andreas Färber <afaer...@suse.de>
Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de>
---
 drivers/core/uclass.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c
index 04fb45b..b647384 100644
--- a/drivers/core/uclass.c
+++ b/drivers/core/uclass.c
@@ -349,12 +349,13 @@ int uclass_get_device_tail(struct udevice *dev, int ret,
                return ret;
 
        assert(dev);
+
+       *devp = dev;
+
        ret = device_probe(dev);
        if (ret)
                return ret;
 
-       *devp = dev;
-
        return 0;
 }
 
-- 
2.1.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to