On 06.11.23 13:03, Roland Hieber wrote:
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]
Tested-by: Leonard Göhrs <l...@pengutronix.de> [lxa,stm32mp157c-tac-gen1]
---
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