summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2025-01-15 18:27:13 -0700
committerTom Rini <trini@konsulko.com>2025-01-22 09:47:49 -0600
commitd337037e1a7b74c05dcaff62739df45a2933078e (patch)
tree19a30f9b6236700863acc3cc8f21275701cccf19
parent91f27b5b0735e6ef18902af12f74d8f357e6dc42 (diff)
vbe: Tidy up error checking with blk_read()
This function can read fewer blocks than requested, so update the checks to handle this. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--boot/vbe_common.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/boot/vbe_common.c b/boot/vbe_common.c
index ecf4ad916e0..0f5e0e4ca98 100644
--- a/boot/vbe_common.c
+++ b/boot/vbe_common.c
@@ -126,6 +126,8 @@ int vbe_read_fit(struct udevice *blk, ulong area_offset, ulong area_size,
ret = blk_read(blk, blknum, 1, sbuf);
if (ret < 0)
return log_msg_ret("rd", ret);
+ else if (ret != 1)
+ return log_msg_ret("rd2", -EIO);
ret = fdt_check_header(sbuf);
if (ret < 0)
@@ -214,6 +216,8 @@ int vbe_read_fit(struct udevice *blk, ulong area_offset, ulong area_size,
blknum, full_size, num_blks, base, base_buf, ret);
if (ret < 0)
return log_msg_ret("rd", ret);
+ if (ret != num_blks)
+ return log_msg_ret("rd", -EIO);
}
if (load_addrp)
*load_addrp = load_addr;