svn commit: r286234 - head/sys/boot/common
Edward Tomasz Napierala
trasz at FreeBSD.org
Mon Aug 3 16:27:37 UTC 2015
Author: trasz
Date: Mon Aug 3 16:27:36 2015
New Revision: 286234
URL: https://svnweb.freebsd.org/changeset/base/286234
Log:
Fix a problem which made loader(8) load non-kld files twice.
For example, without this patch, the following three lines
in /boot/loader.conf would result in /boot/root.img being preloaded
twice, and two md(4) devices - md0 and md1 - being created.
initmd_load="YES"
initmd_type="md_image"
initmd_name="/boot/root.img"
Reviewed by: marcel@
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D3204
Modified:
head/sys/boot/common/module.c
Modified: head/sys/boot/common/module.c
==============================================================================
--- head/sys/boot/common/module.c Mon Aug 3 14:58:46 2015 (r286233)
+++ head/sys/boot/common/module.c Mon Aug 3 16:27:36 2015 (r286234)
@@ -102,6 +102,7 @@ COMMAND_SET(load, "load", "load a kernel
static int
command_load(int argc, char *argv[])
{
+ struct preloaded_file *fp;
char *typestr;
int dofile, dokld, ch, error;
@@ -139,6 +140,13 @@ command_load(int argc, char *argv[])
command_errmsg = "invalid load type";
return(CMD_ERROR);
}
+
+ fp = file_findfile(argv[1], typestr);
+ if (fp) {
+ sprintf(command_errbuf, "warning: file '%s' already loaded", argv[1]);
+ return (CMD_ERROR);
+ }
+
return (file_loadraw(argv[1], typestr, 1) ? CMD_OK : CMD_ERROR);
}
/*
More information about the svn-src-all
mailing list