]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
dfu: fix dev_part_str for file operations
authorIvan Pang <ipman@amazon.com>
Wed, 11 Jun 2025 05:00:38 +0000 (05:00 +0000)
committerMattijs Korpershoek <mkorpershoek@kernel.org>
Mon, 16 Jun 2025 06:57:57 +0000 (08:57 +0200)
The third_arg for a dfu alt is read as an integer and is overloaded for
different supported backends. For ext4 and fat, this third_arg
represents the partition and forms the dev part string, which should
have its partition in hex. This commit fixes dfu ext4/fat usage for
devices with ten or more partitions.

Signed-off-by: Ivan Pang <ipman@amazon.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Link: https://lore.kernel.org/r/20250611050127.38011-1-ipman@amazon.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
drivers/dfu/dfu_mmc.c
drivers/dfu/dfu_scsi.c

index c19eb919388d4d27e3d97b788b4d679c0b9b6edc..a91671755e10ac8ee4629ae7c43737469e5e0ee8 100644 (file)
@@ -117,7 +117,7 @@ static int mmc_file_op(enum dfu_op op, struct dfu_entity *dfu,
                return -1;
        }
 
-       snprintf(dev_part_str, sizeof(dev_part_str), "%d:%d",
+       snprintf(dev_part_str, sizeof(dev_part_str), "%d:%x",
                 dfu->data.mmc.dev, dfu->data.mmc.part);
 
        ret = fs_set_blk_dev("mmc", dev_part_str, fstype);
index 9f95194784c1de00458843276872b1d23d023444..7ec34a8f7e3171ae3a8ff56e112c2dbfc5b2fc29 100644 (file)
@@ -96,7 +96,7 @@ static int scsi_file_op(enum dfu_op op, struct dfu_entity *dfu, u64 offset, void
                return -1;
        }
 
-       snprintf(dev_part_str, sizeof(dev_part_str), "%d:%d", dfu->data.scsi.dev,
+       snprintf(dev_part_str, sizeof(dev_part_str), "%d:%x", dfu->data.scsi.dev,
                 dfu->data.scsi.part);
 
        ret = fs_set_blk_dev("scsi", dev_part_str, fstype);