Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Jul 2006 21:21:44 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 101238 for review
Message-ID:  <200607102121.k6ALLi0R084465@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=101238

Change 101238 by jhb@jhb_mutex on 2006/07/10 21:20:46

	IFC @101232 - loopback.

Affected files ...

.. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#41 integrate
.. //depot/projects/smpng/sys/i386/ibcs2/ibcs2_util.h#9 integrate
.. //depot/projects/smpng/sys/i386/ibcs2/ibcs2_xenix.c#18 integrate
.. //depot/projects/smpng/sys/i386/ibcs2/imgact_coff.c#22 integrate
.. //depot/projects/smpng/sys/kern/kern_linker.c#79 integrate
.. //depot/projects/smpng/sys/security/mac_biba/mac_biba.c#39 integrate

Differences ...

==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#41 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.55 2006/06/08 18:33:08 ps Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.56 2006/07/10 19:37:43 jhb Exp $");
 
 #include "opt_compat.h"
 

==== //depot/projects/smpng/sys/i386/ibcs2/ibcs2_util.h#9 (text+ko) ====

@@ -29,7 +29,7 @@
  * from: svr4_util.h,v 1.5 1994/11/18 02:54:31 christos Exp
  * from: linux_util.h,v 1.2 1995/03/05 23:23:50 fvdl Exp
  *
- * $FreeBSD: src/sys/i386/ibcs2/ibcs2_util.h,v 1.19 2005/02/07 22:02:18 jhb Exp $
+ * $FreeBSD: src/sys/i386/ibcs2/ibcs2_util.h,v 1.20 2006/07/10 17:59:26 jhb Exp $
  */
 
 /*

==== //depot/projects/smpng/sys/i386/ibcs2/ibcs2_xenix.c#18 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/ibcs2/ibcs2_xenix.c,v 1.37 2006/07/08 20:12:13 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/ibcs2/ibcs2_xenix.c,v 1.38 2006/07/10 17:59:26 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/smpng/sys/i386/ibcs2/imgact_coff.c#22 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/ibcs2/imgact_coff.c,v 1.65 2005/04/27 09:05:19 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/ibcs2/imgact_coff.c,v 1.66 2006/07/10 17:59:26 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/smpng/sys/kern/kern_linker.c#79 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_linker.c,v 1.139 2006/07/06 21:39:39 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_linker.c,v 1.142 2006/07/10 19:28:57 jhb Exp $");
 
 #include "opt_ddb.h"
 #include "opt_hwpmc_hooks.h"
@@ -620,9 +620,8 @@
 		free(file->deps, M_LINKER);
 		file->deps = NULL;
 	}
-	for (cp = STAILQ_FIRST(&file->common); cp;
-	    cp = STAILQ_FIRST(&file->common)) {
-		STAILQ_REMOVE(&file->common, cp, common_symbol, link);
+	while ((cp = STAILQ_FIRST(&file->common)) != NULL) {
+		STAILQ_REMOVE_HEAD(&file->common, link);
 		free(cp, M_LINKER);
 	}
 
@@ -1274,7 +1273,7 @@
 	caddr_t modptr;
 	const char *modname, *nmodname;
 	char *modtype;
-	linker_file_t lf;
+	linker_file_t lf, nlf;
 	linker_class_t lc;
 	int error;
 	linker_file_list_t loaded_files;
@@ -1384,10 +1383,10 @@
 					    nver) != NULL) {
 						printf("module %s already"
 						    " present!\n", modname);
+						TAILQ_REMOVE(&loaded_files,
+						    lf, loaded);
 						linker_file_unload(lf,
 						    LINKER_UNLOAD_FORCE);
-						TAILQ_REMOVE(&loaded_files,
-						    lf, loaded);
 						/* we changed tailq next ptr */
 						goto restart;
 					}
@@ -1409,16 +1408,16 @@
 	/*
 	 * At this point, we check to see what could not be resolved..
 	 */
-	TAILQ_FOREACH(lf, &loaded_files, loaded) {
+	while ((lf = TAILQ_FIRST(&loaded_files)) != NULL) {
+		TAILQ_REMOVE(&loaded_files, lf, loaded);
 		printf("KLD file %s is missing dependencies\n", lf->filename);
 		linker_file_unload(lf, LINKER_UNLOAD_FORCE);
-		TAILQ_REMOVE(&loaded_files, lf, loaded);
 	}
 
 	/*
 	 * We made it. Finish off the linking in the order we determined.
 	 */
-	TAILQ_FOREACH(lf, &depended_files, loaded) {
+	TAILQ_FOREACH_SAFE(lf, &depended_files, loaded, nlf) {
 		if (linker_kernel_file) {
 			linker_kernel_file->refs++;
 			error = linker_file_add_dependency(lf,
@@ -1453,6 +1452,7 @@
 		 */
 		error = LINKER_LINK_PRELOAD_FINISH(lf);
 		if (error) {
+			TAILQ_REMOVE(&depended_files, lf, loaded);
 			printf("KLD file %s - could not finalize loading\n",
 			    lf->filename);
 			linker_file_unload(lf, LINKER_UNLOAD_FORCE);

==== //depot/projects/smpng/sys/security/mac_biba/mac_biba.c#39 (text+ko) ====

@@ -31,7 +31,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/security/mac_biba/mac_biba.c,v 1.91 2005/12/31 05:06:59 csjp Exp $
+ * $FreeBSD: src/sys/security/mac_biba/mac_biba.c,v 1.92 2006/07/10 19:13:32 csjp Exp $
  */
 
 /*
@@ -3019,6 +3019,18 @@
 	return (0);
 }
 
+static int
+mac_biba_associate_nfsd_label(struct ucred *cred)
+{
+	struct mac_biba *label;
+
+	label = SLOT(cred->cr_label);
+	mac_biba_set_effective(label, MAC_BIBA_TYPE_LOW, 0, NULL);
+	mac_biba_set_range(label, MAC_BIBA_TYPE_LOW, 0, NULL,
+	    MAC_BIBA_TYPE_HIGH, 0, NULL);
+	return (0);
+}
+
 static struct mac_policy_ops mac_biba_ops =
 {
 	.mpo_init = mac_biba_init,
@@ -3198,6 +3210,7 @@
 	.mpo_check_vnode_setutimes = mac_biba_check_vnode_setutimes,
 	.mpo_check_vnode_stat = mac_biba_check_vnode_stat,
 	.mpo_check_vnode_write = mac_biba_check_vnode_write,
+	.mpo_associate_nfsd_label = mac_biba_associate_nfsd_label,
 };
 
 MAC_POLICY_SET(&mac_biba_ops, mac_biba, "TrustedBSD MAC/Biba",



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607102121.k6ALLi0R084465>