[PATCH 09/12] fastboot: nand: Fix return error code

Maxime Ripard maxime at cerno.tech
Fri Jun 25 15:05:44 CEST 2021


Both mtdparts_init() and find_dev_and_part() will return 0 on success
but 1 on failure.

Since the calling functions of fb_nand_lookup expects a negative error
code on failure, we can't just return the returned value of these
functions.

This fixes an issue with the logic that detects whether we support
fastboot slots or not by calling fb_nand_lookup and assuming that
anything >= 0 means the partition is there.

Signed-off-by: Maxime Ripard <maxime at cerno.tech>
---
 drivers/fastboot/fb_nand.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/fastboot/fb_nand.c b/drivers/fastboot/fb_nand.c
index e07df33d3665..9d832fd8ca9a 100644
--- a/drivers/fastboot/fb_nand.c
+++ b/drivers/fastboot/fb_nand.c
@@ -44,14 +44,14 @@ static int fb_nand_lookup(const char *partname,
 	if (ret) {
 		pr_err("Cannot initialize MTD partitions\n");
 		fastboot_fail("cannot init mtdparts", response);
-		return ret;
+		return -EINVAL;
 	}
 
 	ret = find_dev_and_part(partname, &dev, &pnum, part);
 	if (ret) {
 		pr_err("cannot find partition: '%s'\n", partname);
 		fastboot_fail("cannot find partition", response);
-		return ret;
+		return -ENODEV;
 	}
 
 	if (dev->id->type != MTD_DEV_TYPE_NAND) {
-- 
2.31.1



More information about the U-Boot mailing list