svn commit: r309776 - head/sys/amd64/amd64

Warner Losh imp at FreeBSD.org
Fri Dec 9 23:37:12 UTC 2016


Author: imp
Date: Fri Dec  9 23:37:11 2016
New Revision: 309776
URL: https://svnweb.freebsd.org/changeset/base/309776

Log:
  Permit loading of efirt module even when there's no EFI to call. The
  module loading is successful, but attempts to use it will not be
  successful. This is similar to what we do (did?) with ACPI on non-ACPI
  systems. We succeed if we can't find the necessary information to hook
  into EFI, but still fail if we're unable to allocate resources if we
  do find EFI.
  
  Not Objected to by: kib@
  MFC Afer: 3 days

Modified:
  head/sys/amd64/amd64/efirt.c

Modified: head/sys/amd64/amd64/efirt.c
==============================================================================
--- head/sys/amd64/amd64/efirt.c	Fri Dec  9 22:51:58 2016	(r309775)
+++ head/sys/amd64/amd64/efirt.c	Fri Dec  9 23:37:11 2016	(r309776)
@@ -355,14 +355,14 @@ efi_init(void)
 	if (efi_systbl_phys == 0) {
 		if (bootverbose)
 			printf("EFI systbl not available\n");
-		return (ENXIO);
+		return (0);
 	}
 	efi_systbl = (struct efi_systbl *)PHYS_TO_DMAP(efi_systbl_phys);
 	if (efi_systbl->st_hdr.th_sig != EFI_SYSTBL_SIG) {
 		efi_systbl = NULL;
 		if (bootverbose)
 			printf("EFI systbl signature invalid\n");
-		return (ENXIO);
+		return (0);
 	}
 	efi_cfgtbl = (efi_systbl->st_cfgtbl == 0) ? NULL :
 	    (struct efi_cfgtbl *)efi_systbl->st_cfgtbl;
@@ -379,7 +379,7 @@ efi_init(void)
 	if (efihdr == NULL) {
 		if (bootverbose)
 			printf("EFI map is not present\n");
-		return (ENXIO);
+		return (0);
 	}
 	efisz = (sizeof(struct efi_map_header) + 0xf) & ~0xf;
 	map = (struct efi_md *)((uint8_t *)efihdr + efisz);


More information about the svn-src-all mailing list