[PATCH v2 2/2] partitions: dos: change first partition number from 1 to 0
Ahmad Fatoum
a.fatoum at pengutronix.de
Fri Mar 1 00:15:39 PST 2024
On 29.02.24 08:18, Sascha Hauer wrote:
> Traditionally barebox starts partition numbers at 0. This was changed
> in 8f48e6366c to start at 1. This was done to make the parted numbering
> consistent to the Linux tool. This breaks boot scripts though which
> assume 0 to be the first partition, so change it back.
>
> Fixes: 8f48e6366c ("partitions: dos: implement partition manipulation support")
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
Tested-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
>
> Notes:
> Changes since v1:
>
> - fix partuuid number passed to Linux
>
> common/partitions/dos.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/common/partitions/dos.c b/common/partitions/dos.c
> index 47b5764124..1b0051f978 100644
> --- a/common/partitions/dos.c
> +++ b/common/partitions/dos.c
> @@ -127,7 +127,7 @@ static void dos_extended_partition(struct block_device *blk, struct dos_partitio
> uint8_t *buf = malloc(SECTOR_SIZE);
> uint32_t ebr_sector = partition->first_sec;
> struct partition_entry *table = (struct partition_entry *)&buf[0x1be];
> - unsigned partno = 5;
> + unsigned partno = 4;
> struct dos_partition *dpart;
> struct partition *pentry;
>
> @@ -170,7 +170,7 @@ static void dos_extended_partition(struct block_device *blk, struct dos_partitio
> pentry->size = get_unaligned_le32(&table[0].partition_size);
> pentry->dos_partition_type = table[0].type;
> pentry->num = partno;
> - sprintf(pentry->partuuid, "%08x-%02u", signature, partno);
> + sprintf(pentry->partuuid, "%08x-%02u", signature, partno + 1);
>
> list_add_tail(&pentry->list, &dpd->pd.partitions);
>
> @@ -237,7 +237,7 @@ static struct partition_desc *dos_partition(void *buf, struct block_device *blk)
> pentry->first_sec = first_sec;
> pentry->size = get_unaligned_le32(&table[i].partition_size);
> pentry->dos_partition_type = table[i].type;
> - pentry->num = i + 1;
> + pentry->num = i;
>
> sprintf(pentry->partuuid, "%08x-%02d", signature, i + 1);
> dpd->signature = signature;
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list