]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[efi] Do not report return status from efi_block_local()
authorMichael Brown <mcb30@ipxe.org>
Thu, 7 Mar 2024 13:34:33 +0000 (13:34 +0000)
committerMichael Brown <mcb30@ipxe.org>
Thu, 7 Mar 2024 14:11:46 +0000 (14:11 +0000)
The return status from efi_block_local() indicates whether or not the
handle is eligible to be assigned a local virtual drive number.  There
will always be several enumerated EFI_BLOCK_IO_PROTOCOL handles that
are not eligible for a local virtual drive number (e.g. the handles
corresponding to partitions, rather than to complete disks), and this
is not an interesting error to report.

Do not report errors from efi_block_local() as the overall error
status for a SAN boot, since doing so would be likely to mask a much
more relevant error from having previously attempted to scan for a
matching filesystem within an eligible block device handle.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/interface/efi/efi_block.c

index 28a7f72345092a8fbd63a1e44d88b09d233ede42..2f0187a0a031e9fd910b6ff0ff6dbd50c7c8d4d1 100644 (file)
@@ -1042,8 +1042,12 @@ static int efi_block_boot ( unsigned int drive,
 
                        /* Check if this handle is eligible to be
                         * given a local virtual drive number.
+                        *
+                        * Do not record this as the overall error
+                        * status, since it is not an interesting
+                        * error.
                         */
-                       if ( ( rc = efi_block_local ( handle ) ) != 0 ) {
+                       if ( efi_block_local ( handle ) != 0 ) {
                                /* Do not consume virtual drive number */
                                vdrive--;
                                continue;