[ipxe-devel] [PATCH 1/1] efi_block: add debug message 'is not a child device of'

Heinrich Schuchardt xypron.glpk at gmx.de
Thu Dec 7 17:55:06 UTC 2017


If device paths are not correctly setup by the UEFI
implementation we may and up with a partition whose
parent is not the block device.

To make things easier do analyze add a debug message
EFIBLK %#02x %s is not a child device of %s

The output might look like this:

EFIBLK 0x80 /HD(1,MBR,0xa6d56afb,0x800,0x3f800)
is not a child device of
/HD(1,MBR,0xa6d56afb,0x800,0x3f800)

Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
---
 src/interface/efi/efi_block.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/interface/efi/efi_block.c b/src/interface/efi/efi_block.c
index c6445ab6..9a71fd08 100644
--- a/src/interface/efi/efi_block.c
+++ b/src/interface/efi/efi_block.c
@@ -554,6 +554,9 @@ static int efi_block_boot_image ( struct san_device *sandev, EFI_HANDLE handle,
 	prefix_len = efi_devpath_len ( block->path );
 	if ( memcmp ( path.path, block->path, prefix_len ) != 0 ) {
 		/* Not a child device */
+		DBGC ( sandev, "EFIBLK %#02x %s is not a child device of %s\n",
+		       sandev->drive, efi_devpath_text ( path.path ),
+		       efi_devpath_text ( block->path ) );
 		rc = -ENOTTY;
 		goto err_not_child;
 	}
-- 
2.14.2




More information about the ipxe-devel mailing list