svn commit: r280954 - head/sys/boot/i386/libi386

Roger Pau Monné royger at FreeBSD.org
Wed Apr 1 10:10:22 UTC 2015


Author: royger
Date: Wed Apr  1 10:10:20 2015
New Revision: 280954
URL: https://svnweb.freebsd.org/changeset/base/280954

Log:
  multiboot: fix error codes
  
  Return EINVAL instead of EFTYPE if we have a multiboot kernel loaded but
  failed to load the modules. This makes it clear that the kernel/module
  should be handled by the multiboot handler but something went wrong.
  
  Sponsored by: Citrix Systems R&D

Modified:
  head/sys/boot/i386/libi386/multiboot.c

Modified: head/sys/boot/i386/libi386/multiboot.c
==============================================================================
--- head/sys/boot/i386/libi386/multiboot.c	Wed Apr  1 10:02:28 2015	(r280953)
+++ head/sys/boot/i386/libi386/multiboot.c	Wed Apr  1 10:10:20 2015	(r280954)
@@ -243,7 +243,7 @@ multiboot_exec(struct preloaded_file *fp
 	/* Find the entry point of the Xen kernel and save it for later */
 	if ((md = file_findmetadata(fp, MODINFOMD_ELFHDR)) == NULL) {
 		printf("Unable to find %s entry point\n", fp->f_name);
-		error = EFTYPE;
+		error = EINVAL;
 		goto error;
 	}
 	ehdr = (Elf_Ehdr *)&(md->md_data);
@@ -271,7 +271,7 @@ multiboot_exec(struct preloaded_file *fp
 	fp = file_findfile(NULL, "elf kernel");
 	if (fp == NULL) {
 		printf("No FreeBSD kernel provided, aborting\n");
-		error = EFTYPE;
+		error = EINVAL;
 		goto error;
 	}
 
@@ -380,7 +380,7 @@ multiboot_obj_loadfile(char *filename, u
 			printf(
 			"Unable to load %s as a multiboot payload kernel\n",
 			filename);
-			return (EFTYPE);
+			return (EINVAL);
 		}
 
 		/* Load kernel metadata... */
@@ -389,7 +389,7 @@ multiboot_obj_loadfile(char *filename, u
 		if (error) {
 			printf("Unable to load kernel %s metadata error: %d\n",
 			    rfp->f_name, error);
-			return (EFTYPE);
+			return (EINVAL);
 		}
 
 		/*


More information about the svn-src-all mailing list