In getvar_partition_type() we attempt to find a filesystem driver for
the partition (of the list of driver enabled in U-Boot), on failure we
return the error to fastboot and completely bail out of the operation.

However, this should not be a failure, instead we should just default to
"raw". This allows commands like "fastboot format:ext4 userdata" to work
if userdata didn't already have an ext4 partition table (or if FS_EXT4
is disabled in U-Boot), as failing to determine the current partition
type is not an error in this case.

Signed-off-by: Caleb Connolly <caleb.conno...@linaro.org>
---
 drivers/fastboot/fb_getvar.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/fastboot/fb_getvar.c b/drivers/fastboot/fb_getvar.c
index 93cbd598e024..9c2ce65a4e5b 100644
--- a/drivers/fastboot/fb_getvar.c
+++ b/drivers/fastboot/fb_getvar.c
@@ -229,9 +229,10 @@ static void __maybe_unused getvar_partition_type(char 
*part_name, char *response
                                       response);
        if (r >= 0) {
                r = fs_set_blk_dev_with_part(dev_desc, r);
                if (r < 0)
-                       fastboot_fail("failed to set partition", response);
+                       /* If we don't know then just default to raw */
+                       fastboot_okay("raw", response);
                else
                        fastboot_okay(fs_get_type_name(), response);
        }
 }
-- 
2.47.0

Reply via email to