On Mon, Nov 06, 2023 at 12:04:05PM +0100, Ahmad Fatoum wrote:
> Recent rework introduced a regression for state located in the eMMC
> user area described by DT fixed partitions. Whereas before, the first
> device with type "disk" was taken, dt-utils will now iterate over all
> devices to try to find a matching GPT partition. If it doesn't find any,
> it will instead take the last device with type "disk", which will be the
> second boot partition for eMMC devices leading barebox-state to access
> /dev/mmcblkXboot1 instead of /dev/mmcblkX.
> 
> Let's fix this regression by restoring the old behavior of preferring the
> first disk. This may not be totally future proof, but it worked ok for
> years and a better solution can always be added later with a regular
> release.
> 
> Reported-by: Leonard Göhrs <l.goe...@pengutronix.de>
> Signed-off-by: Ahmad Fatoum <a.fat...@pengutronix.de>

Tested-by: Roland Hieber <r...@pengutronix.de> [riot,imx6s-riotboard]

> ---
>  src/libdt.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/libdt.c b/src/libdt.c
> index 650b40467587..72e8ab41e09b 100644
> --- a/src/libdt.c
> +++ b/src/libdt.c
> @@ -2301,7 +2301,7 @@ static int cdev_from_block_device(struct udev_device 
> *dev,
>               devtype = udev_device_get_devtype(part);
>               if (!devtype)
>                       continue;
> -             if (!strcmp(devtype, "disk")) {
> +             if (!strcmp(devtype, "disk") && !best_match) {
>                       best_match = part;
>  
>                       /* Should we try to find a matching partition first? */
> -- 
> 2.39.2
> 
> 
> 

-- 
Roland Hieber, Pengutronix e.K.          | r.hie...@pengutronix.de     |
Steuerwalder Str. 21                     | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686         | Fax:   +49-5121-206917-5555 |

Reply via email to