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 |