[efi] Do not report return status from efi_block_local()

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>
This commit is contained in:
Michael Brown 2024-03-07 13:34:33 +00:00
parent 24a855f1fc
commit 06e229590c

View 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;