summaryrefslogtreecommitdiffstats
path: root/drivers/firmware/efi/libstub/gop.c
diff options
context:
space:
mode:
authorArvind Sankar <nivedita@alum.mit.edu>2020-03-19 22:00:19 -0400
committerArd Biesheuvel <ardb@kernel.org>2020-04-23 20:15:06 +0200
commit8e0a22e2b0531870e61110d12b1d37d6b5d24eed (patch)
treea72951d0ad95f995e48397a7287380cc049669a9 /drivers/firmware/efi/libstub/gop.c
parentecf53091f34af7172322ed40cfb5acf487329561 (diff)
downloadlinux-stable-8e0a22e2b0531870e61110d12b1d37d6b5d24eed.tar.gz
linux-stable-8e0a22e2b0531870e61110d12b1d37d6b5d24eed.tar.bz2
linux-stable-8e0a22e2b0531870e61110d12b1d37d6b5d24eed.zip
efi/gop: Slightly re-arrange logic of find_gop
Small cleanup to get rid of conout_found. Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu> Link: https://lore.kernel.org/r/20200320020028.1936003-6-nivedita@alum.mit.edu Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Diffstat (limited to 'drivers/firmware/efi/libstub/gop.c')
-rw-r--r--drivers/firmware/efi/libstub/gop.c30
1 files changed, 13 insertions, 17 deletions
diff --git a/drivers/firmware/efi/libstub/gop.c b/drivers/firmware/efi/libstub/gop.c
index 92abcf558845..a7d3efe36c78 100644
--- a/drivers/firmware/efi/libstub/gop.c
+++ b/drivers/firmware/efi/libstub/gop.c
@@ -99,7 +99,6 @@ find_gop(efi_guid_t *proto, unsigned long size, void **handles)
for_each_efi_handle(h, handles, size, i) {
efi_guid_t conout_proto = EFI_CONSOLE_OUT_DEVICE_GUID;
- bool conout_found = false;
void *dummy = NULL;
status = efi_bs_call(handle_protocol, h, proto, (void **)&gop);
@@ -111,25 +110,22 @@ find_gop(efi_guid_t *proto, unsigned long size, void **handles)
if (info->pixel_format == PIXEL_BLT_ONLY)
continue;
+ /*
+ * Systems that use the UEFI Console Splitter may
+ * provide multiple GOP devices, not all of which are
+ * backed by real hardware. The workaround is to search
+ * for a GOP implementing the ConOut protocol, and if
+ * one isn't found, to just fall back to the first GOP.
+ *
+ * Once we've found a GOP supporting ConOut,
+ * don't bother looking any further.
+ */
status = efi_bs_call(handle_protocol, h, &conout_proto, &dummy);
if (status == EFI_SUCCESS)
- conout_found = true;
-
- if (!first_gop || conout_found) {
- /*
- * Systems that use the UEFI Console Splitter may
- * provide multiple GOP devices, not all of which are
- * backed by real hardware. The workaround is to search
- * for a GOP implementing the ConOut protocol, and if
- * one isn't found, to just fall back to the first GOP.
- *
- * Once we've found a GOP supporting ConOut,
- * don't bother looking any further.
- */
+ return gop;
+
+ if (!first_gop)
first_gop = gop;
- if (conout_found)
- break;
- }
}
return first_gop;