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 <max...@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

Reply via email to