summaryrefslogtreecommitdiff
path: root/drivers/fastboot
diff options
context:
space:
mode:
authorCaleb Connolly <[email protected]>2024-11-13 06:05:59 +0100
committerMattijs Korpershoek <[email protected]>2024-11-19 15:10:56 +0100
commit06b8aafd6810d86f37d5b1cd9c1966f1e42403ed (patch)
tree154852d5287f957dc842c6ce009509ce0163b930 /drivers/fastboot
parent0e6432e19f9c812b4986ca7fd8e6db9fd2c199d3 (diff)
fastboot: properly handle unknown partition type
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 <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
Diffstat (limited to 'drivers/fastboot')
-rw-r--r--drivers/fastboot/fb_getvar.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/fastboot/fb_getvar.c b/drivers/fastboot/fb_getvar.c
index 93cbd598e02..9c2ce65a4e5 100644
--- a/drivers/fastboot/fb_getvar.c
+++ b/drivers/fastboot/fb_getvar.c
@@ -230,7 +230,8 @@ static void __maybe_unused getvar_partition_type(char *part_name, char *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);
}