efi_loader: ACPI device node to text
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Sat, 11 May 2019 21:11:48 +0000 (23:11 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Sun, 12 May 2019 18:54:22 +0000 (20:54 +0200)
The device path to text protocol renders ACPI device nodes incorrectly.

Use capital hexadecimal numbers as shown in the UEFI spec examples.

Always output the optional UID. This matches what UEFI SCT expects and
saves us an `if`.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_loader/efi_device_path_to_text.c

index e219f84..f3a9579 100644 (file)
@@ -78,9 +78,9 @@ static char *dp_acpi(char *s, struct efi_device_path *dp)
        case DEVICE_PATH_SUB_TYPE_ACPI_DEVICE: {
                struct efi_device_path_acpi_path *adp =
                        (struct efi_device_path_acpi_path *)dp;
-               s += sprintf(s, "Acpi(PNP%04x", EISA_PNP_NUM(adp->hid));
-               if (adp->uid)
-                       s += sprintf(s, ",%d", adp->uid);
+
+               s += sprintf(s, "Acpi(PNP%04X", EISA_PNP_NUM(adp->hid));
+               s += sprintf(s, ",%d", adp->uid);
                s += sprintf(s, ")");
                break;
        }