svn commit: r327058 - head/stand/efi/boot1

Michael Zhilin mizhka at FreeBSD.org
Thu Dec 21 12:21:36 UTC 2017


Author: mizhka
Date: Thu Dec 21 12:21:35 2017
New Revision: 327058
URL: https://svnweb.freebsd.org/changeset/base/327058

Log:
  [boot/efi] scan all display modes rather than sequential try-fail way
  
  This patch allows to scan all display modes in boot1 as loader does.
  
  Before system tried to select optimal display mode by sequential scan of
  modes and if error then stop scanning. This way is not good, because
  if mode N is not present, mode N+1 may exist.
  
  In loader we use conout->Mode->MaxMode to identify maximum number of modes.
  This commit is to use same way in boot1 as in loader.
  
  Reported by:	Andrey Pustovetov <andrey.pustovetov at gmail.com>
  Reviewed by:	tsoome
  Differential Revision:	https://reviews.freebsd.org/D13541

Modified:
  head/stand/efi/boot1/boot1.c

Modified: head/stand/efi/boot1/boot1.c
==============================================================================
--- head/stand/efi/boot1/boot1.c	Thu Dec 21 09:21:40 2017	(r327057)
+++ head/stand/efi/boot1/boot1.c	Thu Dec 21 12:21:35 2017	(r327058)
@@ -430,10 +430,10 @@ efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_TABLE *Xsystab)
 	conout = ST->ConOut;
 	conout->Reset(conout, TRUE);
 	max_dim = best_mode = 0;
-	for (i = 0; ; i++) {
+	for (i = 0; i < conout->Mode->MaxMode; i++) {
 		status = conout->QueryMode(conout, i, &cols, &rows);
 		if (EFI_ERROR(status))
-			break;
+			continue;
 		if (cols * rows > max_dim) {
 			max_dim = cols * rows;
 			best_mode = i;


More information about the svn-src-head mailing list