From 9a62aa9329063f7e0c1d90262863b94fef436d7a Mon Sep 17 00:00:00 2001 From: Jose Luis Duran Date: Fri, 25 Feb 2022 14:35:58 -0300 Subject: [PATCH] libefivar: Use VENDOR_DEVICE_PATH structure for Debug Port device path When converting DebugPort device path from text, current code use VENDOR_DEFINED_MESSAGING_DEVICE_PATH structure for Debug port device node. typedef struct { EFI_DEVICE_PATH_PROTOCOL Header; EFI_GUID Guid; UINT8 VendorDefinedData[1]; } VENDOR_DEFINED_MESSAGING_DEVICE_PATH; And Debugport Device Path is a vendor-defined messaging device path with no data, only a GUID. So it's better to use VENDOR_DEVICE_PATH to create the Debug port device node. typedef struct { EFI_DEVICE_PATH_PROTOCOL Header; EFI_GUID Guid; } VENDOR_DEVICE_PATH; Upstream Bug: https://bugzilla.tianocore.org/show_bug.cgi?id=1229 Obtained from: https://github.com/tianocore/edk2/commit/9343d0a1cd09544686b14dba5b428d7bc811f6b9 Pull Request: https://github.com/freebsd/freebsd-src/pull/581 --- lib/libefivar/efivar-dp-parse.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/libefivar/efivar-dp-parse.c b/lib/libefivar/efivar-dp-parse.c index 82e003b98229..8e6a7c8acad1 100644 --- a/lib/libefivar/efivar-dp-parse.c +++ b/lib/libefivar/efivar-dp-parse.c @@ -1876,12 +1876,12 @@ DevPathFromTextDebugPort ( IN CHAR16 *TextDeviceNode ) { - VENDOR_DEFINED_MESSAGING_DEVICE_PATH *Vend; + VENDOR_DEVICE_PATH *Vend; - Vend = (VENDOR_DEFINED_MESSAGING_DEVICE_PATH *) CreateDeviceNode ( + Vend = (VENDOR_DEVICE_PATH *) CreateDeviceNode ( MESSAGING_DEVICE_PATH, MSG_VENDOR_DP, - (UINT16) sizeof (VENDOR_DEFINED_MESSAGING_DEVICE_PATH) + (UINT16) sizeof (VENDOR_DEVICE_PATH) ); CopyGuid (&Vend->Guid, &gEfiDebugPortProtocolGuid);