Module Name: src
Committed By: pgoyette
Date: Sat Aug 21 13:19:41 UTC 2010
Modified Files:
src/sys/dev/dm: dm_target.c
src/sys/kern: kern_exec.c kern_syscall.c sys_module.c sys_sig.c tty.c
uipc_accf.c vfs_syscalls.c
src/sys/miscfs/specfs: spec_vnops.c
src/sys/net: if_ppp.c
Log Message:
Update the rest of the kernel to conform to the module subsystem's new
locking protocol.
To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/sys/dev/dm/dm_target.c
cvs rdiff -u -r1.299 -r1.300 src/sys/kern/kern_exec.c
cvs rdiff -u -r1.4 -r1.5 src/sys/kern/kern_syscall.c
cvs rdiff -u -r1.11 -r1.12 src/sys/kern/sys_module.c src/sys/kern/uipc_accf.c
cvs rdiff -u -r1.28 -r1.29 src/sys/kern/sys_sig.c
cvs rdiff -u -r1.237 -r1.238 src/sys/kern/tty.c
cvs rdiff -u -r1.407 -r1.408 src/sys/kern/vfs_syscalls.c
cvs rdiff -u -r1.130 -r1.131 src/sys/miscfs/specfs/spec_vnops.c
cvs rdiff -u -r1.131 -r1.132 src/sys/net/if_ppp.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/dm/dm_target.c
diff -u src/sys/dev/dm/dm_target.c:1.13 src/sys/dev/dm/dm_target.c:1.14
--- src/sys/dev/dm/dm_target.c:1.13 Tue May 18 15:10:41 2010
+++ src/sys/dev/dm/dm_target.c Sat Aug 21 13:19:41 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: dm_target.c,v 1.13 2010/05/18 15:10:41 haad Exp $ */
+/* $NetBSD: dm_target.c,v 1.14 2010/08/21 13:19:41 pgoyette Exp $ */
/*
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -83,9 +83,7 @@
gen = module_gen;
/* Try to autoload target module */
- mutex_enter(&module_lock);
(void) module_autoload(name, MODULE_CLASS_MISC);
- mutex_exit(&module_lock);
} while (gen != module_gen);
mutex_enter(&dm_target_mutex);
Index: src/sys/kern/kern_exec.c
diff -u src/sys/kern/kern_exec.c:1.299 src/sys/kern/kern_exec.c:1.300
--- src/sys/kern/kern_exec.c:1.299 Wed Jul 7 01:30:37 2010
+++ src/sys/kern/kern_exec.c Sat Aug 21 13:19:39 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_exec.c,v 1.299 2010/07/07 01:30:37 chs Exp $ */
+/* $NetBSD: kern_exec.c,v 1.300 2010/08/21 13:19:39 pgoyette Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -59,7 +59,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.299 2010/07/07 01:30:37 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.300 2010/08/21 13:19:39 pgoyette Exp $");
#include "opt_ktrace.h"
#include "opt_modular.h"
@@ -500,17 +500,13 @@
char const * const *list;
int i;
- mutex_enter(&module_lock);
list = (nexecs == 0 ? native : compat);
for (i = 0; list[i] != NULL; i++) {
if (module_autoload(list[i], MODULE_CLASS_MISC) != 0) {
continue;
}
- mutex_exit(&module_lock);
yield();
- mutex_enter(&module_lock);
}
- mutex_exit(&module_lock);
#endif
}
Index: src/sys/kern/kern_syscall.c
diff -u src/sys/kern/kern_syscall.c:1.4 src/sys/kern/kern_syscall.c:1.5
--- src/sys/kern/kern_syscall.c:1.4 Thu Apr 15 20:46:08 2010
+++ src/sys/kern/kern_syscall.c Sat Aug 21 13:19:39 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_syscall.c,v 1.4 2010/04/15 20:46:08 pooka Exp $ */
+/* $NetBSD: kern_syscall.c,v 1.5 2010/08/21 13:19:39 pgoyette Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_syscall.c,v 1.4 2010/04/15 20:46:08 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_syscall.c,v 1.5 2010/08/21 13:19:39 pgoyette Exp $");
#include "opt_modular.h"
@@ -45,6 +45,7 @@
#include <sys/syscall.h>
#include <sys/syscallargs.h>
#include <sys/syscallvar.h>
+#include <sys/systm.h>
#include <sys/xcall.h>
int
@@ -199,13 +200,13 @@
/*
* Restart the syscall if we interrupted a module unload that
- * failed. Acquiring module_lock delays us until any unload
+ * failed. Acquiring kernconfig_lock delays us until any unload
* has been completed or rolled back.
*/
- mutex_enter(&module_lock);
+ kernconfig_lock();
sy = l->l_sysent;
if (sy->sy_call != sys_nomodule) {
- mutex_exit(&module_lock);
+ kernconfig_unlock();
return ERESTART;
}
/*
@@ -224,11 +225,11 @@
sy->sy_call == sys_nomodule) {
break;
}
- mutex_exit(&module_lock);
+ kernconfig_unlock();
return ERESTART;
}
}
- mutex_exit(&module_lock);
+ kernconfig_unlock();
#endif /* MODULAR */
return sys_nosys(l, v, retval);
@@ -240,7 +241,7 @@
struct sysent *sy;
int i;
- KASSERT(mutex_owned(&module_lock));
+ KASSERT(kernconfig_is_held());
if (em == NULL) {
em = &emul_netbsd;
@@ -277,7 +278,7 @@
lwp_t *l;
int i;
- KASSERT(mutex_owned(&module_lock));
+ KASSERT(kernconfig_is_held());
if (em == NULL) {
em = &emul_netbsd;
@@ -320,7 +321,7 @@
/*
* We lose: one or more calls are still in use. Put back
* the old entrypoints and act like nothing happened.
- * When we drop module_lock, any system calls held in
+ * When we drop kernconfig_lock, any system calls held in
* sys_nomodule() will be restarted.
*/
for (i = 0; sp[i].sp_call != NULL; i++) {
Index: src/sys/kern/sys_module.c
diff -u src/sys/kern/sys_module.c:1.11 src/sys/kern/sys_module.c:1.12
--- src/sys/kern/sys_module.c:1.11 Fri Mar 5 18:35:01 2010
+++ src/sys/kern/sys_module.c Sat Aug 21 13:19:39 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_module.c,v 1.11 2010/03/05 18:35:01 pooka Exp $ */
+/* $NetBSD: sys_module.c,v 1.12 2010/08/21 13:19:39 pgoyette Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_module.c,v 1.11 2010/03/05 18:35:01 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_module.c,v 1.12 2010/08/21 13:19:39 pgoyette Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -144,11 +144,11 @@
if (error != 0) {
break;
}
- mutex_enter(&module_lock);
+ kernconfig_lock();
mslen = (module_count+module_builtinlist+1) * sizeof(modstat_t);
mso = kmem_zalloc(mslen, KM_SLEEP);
if (mso == NULL) {
- mutex_exit(&module_lock);
+ kernconfig_unlock();
return ENOMEM;
}
ms = mso;
@@ -187,7 +187,7 @@
ms->ms_source = mod->mod_source;
ms++;
}
- mutex_exit(&module_lock);
+ kernconfig_unlock();
error = copyout(mso, iov.iov_base,
min(mslen - sizeof(modstat_t), iov.iov_len));
kmem_free(mso, mslen);
Index: src/sys/kern/uipc_accf.c
diff -u src/sys/kern/uipc_accf.c:1.11 src/sys/kern/uipc_accf.c:1.12
--- src/sys/kern/uipc_accf.c:1.11 Sat Mar 13 23:03:39 2010
+++ src/sys/kern/uipc_accf.c Sat Aug 21 13:19:39 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: uipc_accf.c,v 1.11 2010/03/13 23:03:39 christos Exp $ */
+/* $NetBSD: uipc_accf.c,v 1.12 2010/08/21 13:19:39 pgoyette Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -58,7 +58,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uipc_accf.c,v 1.11 2010/03/13 23:03:39 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uipc_accf.c,v 1.12 2010/08/21 13:19:39 pgoyette Exp $");
#define ACCEPT_FILTER_MOD
@@ -167,10 +167,8 @@
/* Try to autoload a module to satisfy the request. */
strcpy(buf, "accf_");
strlcat(buf, name, sizeof(buf));
- mutex_enter(&module_lock);
gen = module_gen;
(void)module_autoload(buf, MODULE_CLASS_ANY);
- mutex_exit(&module_lock);
} while (gen != module_gen);
return p;
Index: src/sys/kern/sys_sig.c
diff -u src/sys/kern/sys_sig.c:1.28 src/sys/kern/sys_sig.c:1.29
--- src/sys/kern/sys_sig.c:1.28 Thu Jul 1 02:38:31 2010
+++ src/sys/kern/sys_sig.c Sat Aug 21 13:19:39 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_sig.c,v 1.28 2010/07/01 02:38:31 rmind Exp $ */
+/* $NetBSD: sys_sig.c,v 1.29 2010/08/21 13:19:39 pgoyette Exp $ */
/*-
* Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_sig.c,v 1.28 2010/07/01 02:38:31 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_sig.c,v 1.29 2010/08/21 13:19:39 pgoyette Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -347,13 +347,13 @@
*
* If version < 2, we try to autoload the compat module. Note
* that we interlock with the unload check in compat_modcmd()
- * using module_lock. If the autoload fails, we don't try it
+ * using kernconfig_lock. If the autoload fails, we don't try it
* again for this process.
*/
if (nsa != NULL) {
if (__predict_false(vers < 2) &&
(p->p_lflag & PL_SIGCOMPAT) == 0) {
- mutex_enter(&module_lock);
+ kernconfig_lock();
if (sendsig_sigcontext_vec == NULL) {
(void)module_autoload("compat",
MODULE_CLASS_ANY);
@@ -374,7 +374,7 @@
*/
p->p_lflag |= PL_SIGCOMPAT;
mutex_exit(proc_lock);
- mutex_exit(&module_lock);
+ kernconfig_unlock();
}
switch (vers) {
Index: src/sys/kern/tty.c
diff -u src/sys/kern/tty.c:1.237 src/sys/kern/tty.c:1.238
--- src/sys/kern/tty.c:1.237 Thu Jul 1 02:38:31 2010
+++ src/sys/kern/tty.c Sat Aug 21 13:19:39 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: tty.c,v 1.237 2010/07/01 02:38:31 rmind Exp $ */
+/* $NetBSD: tty.c,v 1.238 2010/08/21 13:19:39 pgoyette Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -63,7 +63,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tty.c,v 1.237 2010/07/01 02:38:31 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tty.c,v 1.238 2010/08/21 13:19:39 pgoyette Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1264,13 +1264,10 @@
break;
}
rw_exit(&ttcompat_lock);
- mutex_enter(&module_lock);
(void)module_autoload("compat", MODULE_CLASS_ANY);
if (ttcompatvec == NULL) {
- mutex_exit(&module_lock);
return EPASSTHROUGH;
}
- mutex_exit(&module_lock);
}
error = (*ttcompatvec)(tp, cmd, data, flag, l);
rw_exit(&ttcompat_lock);
Index: src/sys/kern/vfs_syscalls.c
diff -u src/sys/kern/vfs_syscalls.c:1.407 src/sys/kern/vfs_syscalls.c:1.408
--- src/sys/kern/vfs_syscalls.c:1.407 Wed Jun 30 15:44:54 2010
+++ src/sys/kern/vfs_syscalls.c Sat Aug 21 13:19:39 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_syscalls.c,v 1.407 2010/06/30 15:44:54 pooka Exp $ */
+/* $NetBSD: vfs_syscalls.c,v 1.408 2010/08/21 13:19:39 pgoyette Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.407 2010/06/30 15:44:54 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.408 2010/08/21 13:19:39 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_fileassoc.h"
@@ -278,9 +278,7 @@
return 0;
/* If we can autoload a vfs module, try again */
- mutex_enter(&module_lock);
(void)module_autoload(fstypename, MODULE_CLASS_VFS);
- mutex_exit(&module_lock);
if ((*vfsops = vfs_getopsbyname(fstypename)) != NULL)
return 0;
Index: src/sys/miscfs/specfs/spec_vnops.c
diff -u src/sys/miscfs/specfs/spec_vnops.c:1.130 src/sys/miscfs/specfs/spec_vnops.c:1.131
--- src/sys/miscfs/specfs/spec_vnops.c:1.130 Thu Jun 24 13:03:17 2010
+++ src/sys/miscfs/specfs/spec_vnops.c Sat Aug 21 13:19:40 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: spec_vnops.c,v 1.130 2010/06/24 13:03:17 hannken Exp $ */
+/* $NetBSD: spec_vnops.c,v 1.131 2010/08/21 13:19:40 pgoyette Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -58,7 +58,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: spec_vnops.c,v 1.130 2010/06/24 13:03:17 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spec_vnops.c,v 1.131 2010/08/21 13:19:40 pgoyette Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -459,9 +459,7 @@
break;
/* Try to autoload device module */
- mutex_enter(&module_lock);
(void) module_autoload(name, MODULE_CLASS_DRIVER);
- mutex_exit(&module_lock);
} while (gen != module_gen);
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
@@ -512,9 +510,7 @@
VOP_UNLOCK(vp);
/* Try to autoload device module */
- mutex_enter(&module_lock);
(void) module_autoload(name, MODULE_CLASS_DRIVER);
- mutex_exit(&module_lock);
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
} while (gen != module_gen);
Index: src/sys/net/if_ppp.c
diff -u src/sys/net/if_ppp.c:1.131 src/sys/net/if_ppp.c:1.132
--- src/sys/net/if_ppp.c:1.131 Mon Apr 5 07:22:23 2010
+++ src/sys/net/if_ppp.c Sat Aug 21 13:19:40 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: if_ppp.c,v 1.131 2010/04/05 07:22:23 joerg Exp $ */
+/* $NetBSD: if_ppp.c,v 1.132 2010/08/21 13:19:40 pgoyette Exp $ */
/* Id: if_ppp.c,v 1.6 1997/03/04 03:33:00 paulus Exp */
/*
@@ -102,7 +102,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_ppp.c,v 1.131 2010/04/05 07:22:23 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ppp.c,v 1.132 2010/08/21 13:19:40 pgoyette Exp $");
#include "ppp.h"
@@ -1820,7 +1820,7 @@
if (cp != NULL)
return cp;
- mutex_enter(&module_lock);
+ kernconfig_lock();
mutex_enter(&ppp_compressors_mtx);
cp = ppp_get_compressor_noload(ci, true);
mutex_exit(&ppp_compressors_mtx);
@@ -1838,7 +1838,7 @@
}
}
}
- mutex_exit(&module_lock);
+ kernconfig_unlock();
return cp;
}