[PATCH] uefi: uefidump: dealing with the End of Hardware Device Path sub-type 0x01 (LP:#1253906)

Ivan Hu ivan.hu at canonical.com
Fri Nov 22 07:16:48 UTC 2013


Uefidump don't do anything when uefidump parser device path for End of Hardware
Device Path - End This Instance of a Device Path sub-type(sub-type 0x01).
It causes that the device path be showed without knowing the "End This Instance of a Device Path sub-type" is included.
For example,
  Device Path: \ACPI(0xa0341d0,0x0)\PCI(0x0,0x2)\ACPI_ADR(0x80010302)\ACPI(0xa0341d0,0x0)\PCI(0x0,0x1f)\ACPI(0x50141d0,0x0)\UART(115200,8,1,1)\VENDOR(11d2f9be-0c9a-9000-27-3f-c1-4d-7f-01-04-00)\ACPI(0xa0341d0,0x0)\PCI(0x0,0x2)\ACPI_ADR(0x80010100).

According to the UEFI spec section 9.3.1 the "End This Instance of a Device Path sub-type",
Sub-Type 0x01 – End This Instance of a Device Path and start a new Device Path
It should be improved to show the device path end and new device path start.

For example,
  Device Path: \ACPI(0xa0341d0,0x0)\PCI(0x0,0x2)\ACPI_ADR(0x80010302)
  Device Path: \ACPI(0xa0341d0,0x0)\PCI(0x0,0x1f)\ACPI(0x50141d0,0x0)\UART(115200,8,1,1)\VENDOR(11d2f9be-0c9a-9000-27-3f-c1-4d-7f-01-04-00)
  Device Path: \ACPI(0xa0341d0,0x0)\PCI(0x0,0x2)\ACPI_ADR(0x80010100).

Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
 src/uefi/uefidump/uefidump.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/uefi/uefidump/uefidump.c b/src/uefi/uefidump/uefidump.c
index cd57422..50a08b4 100644
--- a/src/uefi/uefidump/uefidump.c
+++ b/src/uefi/uefidump/uefidump.c
@@ -99,7 +99,9 @@ static char *uefidump_build_dev_path(char *path, fwts_uefi_dev_path *dev_path, c
 	case FWTS_UEFI_END_DEV_PATH_TYPE:
 		switch (dev_path->subtype) {
 		case FWTS_UEFI_END_ENTIRE_DEV_PATH_SUBTYPE:
+			break;
 		case FWTS_UEFI_END_THIS_DEV_PATH_SUBTYPE:
+			path = uefidump_vprintf(path, "\n  Device Path: ");
 			break;
 		default:
 			return uefidump_vprintf(path, "\\Unknown-End(0x%" PRIx8 ")", dev_path->subtype);
-- 
1.7.9.5




More information about the fwts-devel mailing list