Module Name:    src
Committed By:   jnemeth
Date:           Tue Jun  9 20:35:02 UTC 2009

Modified Files:
        src/sbin/modload: main.c modload.8
        src/sys/kern: kern_module.c
        src/sys/sys: module.h

Log Message:
Add the MODCTL_NO_PROP flag to tell the kernel to ignore <module>.prop.

Add the '-P' option to modload(8) to set this flag.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/sbin/modload/main.c
cvs rdiff -u -r1.34 -r1.35 src/sbin/modload/modload.8
cvs rdiff -u -r1.47 -r1.48 src/sys/kern/kern_module.c
cvs rdiff -u -r1.14 -r1.15 src/sys/sys/module.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sbin/modload/main.c
diff -u src/sbin/modload/main.c:1.10 src/sbin/modload/main.c:1.11
--- src/sbin/modload/main.c:1.10	Fri Jun  5 11:37:30 2009
+++ src/sbin/modload/main.c	Tue Jun  9 20:35:02 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.10 2009/06/05 11:37:30 jnemeth Exp $	*/
+/*	$NetBSD: main.c,v 1.11 2009/06/09 20:35:02 jnemeth Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: main.c,v 1.10 2009/06/05 11:37:30 jnemeth Exp $");
+__RCSID("$NetBSD: main.c,v 1.11 2009/06/09 20:35:02 jnemeth Exp $");
 #endif /* !lint */
 
 #include <sys/module.h>
@@ -81,8 +81,11 @@
 	del_props = merge_props = output_props = false;
 	flags = 0;
 
-	while ((ch = getopt(argc, argv, "b:d:fi:m:ps:")) != -1) {
+	while ((ch = getopt(argc, argv, "Pb:d:fi:m:ps:")) != -1) {
 		switch (ch) {
+		case 'P':
+			flags |= MODCTL_NO_PROP;
+			break;
 		case 'b':
 			parse_param(props, optarg, parse_bool_param);
 			break;
@@ -248,9 +251,9 @@
 {
 
 	(void)fprintf(stderr,
-	    "Usage: %s [-f] [-b var=boolean] [-i var=integer] "
+	    "Usage: %s [-P] [-f] [-b var=boolean] [-i var=integer] "
 	    "[-s var=string] module\n"
-	    "       %s -p [-b var=boolean] [-d var] [-i var=integer] "
+	    "       %s -p [-P] [-b var=boolean] [-d var] [-i var=integer] "
 	    "[-m plist]\n               [-s var=string]\n",
 	    getprogname(), getprogname());
 	exit(EXIT_FAILURE);

Index: src/sbin/modload/modload.8
diff -u src/sbin/modload/modload.8:1.34 src/sbin/modload/modload.8:1.35
--- src/sbin/modload/modload.8:1.34	Fri Jun  5 11:37:30 2009
+++ src/sbin/modload/modload.8	Tue Jun  9 20:35:02 2009
@@ -1,4 +1,4 @@
-.\" $NetBSD: modload.8,v 1.34 2009/06/05 11:37:30 jnemeth Exp $
+.\" $NetBSD: modload.8,v 1.35 2009/06/09 20:35:02 jnemeth Exp $
 .\"
 .\" Copyright (c) 1993 Christopher G. Demetriou
 .\" All rights reserved.
@@ -32,7 +32,7 @@
 .\"
 .\" <<Id: LICENSE,v 1.2 2000/06/14 15:57:33 cgd Exp>>
 .\"
-.Dd June 5, 2009
+.Dd June 9, 2009
 .Dt MODLOAD 8
 .Os
 .Sh NAME
@@ -43,6 +43,7 @@
 .Op Fl f
 .Op Fl b Ar var=boolean
 .Op Fl i Ar var=integer
+.Op Fl P
 .Op Fl s Ar var=string
 .Ar module
 .Nm
@@ -51,6 +52,7 @@
 .Op Fl d Ar var
 .Op Fl i Ar var=integer
 .Op Fl m Ar plist
+.Op Fl P
 .Op Fl s Ar var=string
 .Sh DESCRIPTION
 The
@@ -100,6 +102,8 @@
 .Fl p ,
 merge new options with an existing property list contained in
 .Ar plist .
+.It Fl P
+This option tells the kernel not to load an associated property list.
 .It Fl p
 Output a property list suitable for loading along with a module.
 When using this option, you do not need to specify a module.

Index: src/sys/kern/kern_module.c
diff -u src/sys/kern/kern_module.c:1.47 src/sys/kern/kern_module.c:1.48
--- src/sys/kern/kern_module.c:1.47	Tue Jun  9 19:09:03 2009
+++ src/sys/kern/kern_module.c	Tue Jun  9 20:35:02 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_module.c,v 1.47 2009/06/09 19:09:03 jnemeth Exp $	*/
+/*	$NetBSD: kern_module.c,v 1.48 2009/06/09 20:35:02 jnemeth Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_module.c,v 1.47 2009/06/09 19:09:03 jnemeth Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_module.c,v 1.48 2009/06/09 20:35:02 jnemeth Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ddb.h"
@@ -788,7 +788,8 @@
 	/*
 	 * Load and process <module>.prop if it exists.
 	 */
-	if (mod->mod_source == MODULE_SOURCE_FILESYS) {
+	if (((flags & MODCTL_NO_PROP) == 0) &&
+	    (mod->mod_source == MODULE_SOURCE_FILESYS)) {
 		error = module_load_plist_file(path, nochroot, &plist,
 		    &plistlen);
 		if (error != 0) {

Index: src/sys/sys/module.h
diff -u src/sys/sys/module.h:1.14 src/sys/sys/module.h:1.15
--- src/sys/sys/module.h:1.14	Tue Nov 25 15:14:07 2008
+++ src/sys/sys/module.h	Tue Jun  9 20:35:02 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: module.h,v 1.14 2008/11/25 15:14:07 ad Exp $	*/
+/*	$NetBSD: module.h,v 1.15 2009/06/09 20:35:02 jnemeth Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -139,7 +139,8 @@
 typedef struct modctl_load {
 	const char *ml_filename;
 
-#define MODCTL_LOAD_FORCE 1
+#define MODCTL_NO_PROP		0x2
+#define MODCTL_LOAD_FORCE	0x1
 	int ml_flags;
 
 	const char *ml_props;

Reply via email to