So far we matched the XBOOTLDR partition only on MBR-partitioned media. Let's do the same for GPT too.
Signed-off-by: Ahmad Fatoum <a.fat...@pengutronix.de> --- common/blspec.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/common/blspec.c b/common/blspec.c index cf9f973acd21..adc3fb2e2ea2 100644 --- a/common/blspec.c +++ b/common/blspec.c @@ -16,6 +16,7 @@ #include <linux/stat.h> #include <linux/list.h> #include <linux/err.h> +#include <uapi/spec/dps.h> #include <boot.h> #include <bootscan.h> @@ -508,22 +509,22 @@ static int blspec_scan_disk(struct bootscanner *scanner, struct cdev *match = NULL; /* - * If the OS is installed on a disk with MBR disk label, and a - * partition with the MBR type id of 0xEA already exists it - * should be used as $BOOT + * If the OS is installed on a disk with: + * + * - MBR disk label, and a partition with the MBR type id of 0xEA + * already exists + * + * - GPT disk label, and a partition with the GPT type GUID of + * bc13c2ff-59e6-4262-a352-b275fd6f7172 already exists + * + * it should be used as $BOOT */ if (cdev_is_mbr_partitioned(cdev)) { if (partcdev->dos_partition_type == 0xea) match = partcdev; - } else { - /* - * If the OS is installed on a disk with GPT disk label, and a - * partition with the GPT type GUID of - * bc13c2ff-59e6-4262-a352-b275fd6f7172 already exists, it - * should be used as $BOOT. - * - * Not yet implemented - */ + } else if (cdev_is_gpt_partitioned(cdev)) { + if (guid_equal(&partcdev->typeuuid, &SD_GPT_XBOOTLDR)) + match = partcdev; } if (!match) -- 2.39.5