public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: U-Boot Mailing List <u-boot@lists.denx.de>
Cc: Tom Rini <trini@konsulko.com>,
	Albert Aribaud <albert.u.boot@aribaud.net>,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	Simon Glass <sjg@chromium.org>
Subject: [PATCH 04/13] bootstd: Probe the block device before use
Date: Sat, 28 Jan 2023 15:00:19 -0700	[thread overview]
Message-ID: <20230128220028.53575-5-sjg@chromium.org> (raw)
In-Reply-To: <20230128220028.53575-1-sjg@chromium.org>

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>
---

 boot/bootdev-uclass.c | 3 +++
 boot/bootflow.c       | 4 ++++
 2 files changed, 7 insertions(+)

diff --git a/boot/bootdev-uclass.c b/boot/bootdev-uclass.c
index 99ee08e3353..8103a11d1bb 100644
--- a/boot/bootdev-uclass.c
+++ b/boot/bootdev-uclass.c
@@ -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;
diff --git a/boot/bootflow.c b/boot/bootflow.c
index dc3f1f0c731..b8fa37ee2a0 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))
-- 
2.39.1.456.gfc5497dd1b-goog


  parent reply	other threads:[~2023-01-28 22:02 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-28 22:00 [PATCH 00/13] bootstd: Update ARM QEMU for standard boot and environment Simon Glass
2023-01-28 22:00 ` [PATCH 01/13] log: Add a category for filesystems Simon Glass
2023-02-07 16:51   ` Tom Rini
2023-01-28 22:00 ` [PATCH 02/13] virtio: Add some debugging Simon Glass
2023-02-07 16:51   ` Tom Rini
2023-01-28 22:00 ` [PATCH 03/13] bootstd: Allow enabling BOOTSTD_FULL without needing EXPO Simon Glass
2023-02-07 16:51   ` Tom Rini
2023-01-28 22:00 ` Simon Glass [this message]
2023-02-07 16:51   ` [PATCH 04/13] bootstd: Probe the block device before use Tom Rini
2023-01-28 22:00 ` [PATCH 05/13] bootstd: Correct virtio block-device handling Simon Glass
2023-02-07 16:51   ` Tom Rini
2023-01-28 22:00 ` [PATCH 06/13] bootstd: Add some default filesystems and commands Simon Glass
2023-02-07 16:51   ` Tom Rini
2023-01-28 22:00 ` [PATCH 07/13] qemu: Update qfw command to use addresses Simon Glass
2023-02-07 16:52   ` Tom Rini
2023-01-28 22:00 ` [PATCH 08/13] qemu: Move qfw kernel setup into a common file Simon Glass
2023-02-07 16:52   ` Tom Rini
2023-01-28 22:00 ` [PATCH 09/13] qemu: Add a bootdev for qfw Simon Glass
2023-02-07 16:52   ` Tom Rini
2023-01-28 22:00 ` [PATCH 10/13] qemu: Add a bootmeth " Simon Glass
2023-02-07 16:52   ` Tom Rini
2023-01-28 22:00 ` [PATCH 11/13] arm: qemu: Switch to standard boot Simon Glass
2023-02-07 16:52   ` Tom Rini
2023-01-28 22:00 ` [PATCH 12/13] arm: qemu: Switch to a text environment Simon Glass
2023-02-07 16:52   ` Tom Rini
2023-01-28 22:00 ` [PATCH 13/13] arm: qemu: Move GUIDs to the C file Simon Glass
2023-02-07 16:52   ` Tom Rini
2023-01-30 17:19 ` [PATCH 00/13] bootstd: Update ARM QEMU for standard boot and environment Tom Rini
2023-01-31 14:16   ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230128220028.53575-5-sjg@chromium.org \
    --to=sjg@chromium.org \
    --cc=albert.u.boot@aribaud.net \
    --cc=ilias.apalodimas@linaro.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox