From: Caleb Connolly Date: Wed, 13 Nov 2024 05:05:59 +0000 (+0100) Subject: fastboot: properly handle unknown partition type X-Git-Url: http://git.dujemihanovic.xyz/img/static/%7B%7B%20%24.Site.BaseURL%20%7D%7Dposts/%7B%7B?a=commitdiff_plain;h=06b8aafd6810d86f37d5b1cd9c1966f1e42403ed;p=u-boot.git 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 Reviewed-by: Mattijs Korpershoek Link: https://lore.kernel.org/r/20241113050607.1850472-1-caleb.connolly@linaro.org Signed-off-by: Mattijs Korpershoek --- diff --git a/drivers/fastboot/fb_getvar.c b/drivers/fastboot/fb_getvar.c index 93cbd598e0..9c2ce65a4e 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); }