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);
     }
     /*
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to