diff options
| author | ad <ad@NetBSD.org> | 2008-05-31 21:34:42 +0000 |
|---|---|---|
| committer | ad <ad@NetBSD.org> | 2008-05-31 21:34:42 +0000 |
| commit | 736a4d9b7870c657841320ebee34cd39d1c751e5 (patch) | |
| tree | 34a6e5935acd27b7f080bef3259dd8e5aed60404 /sys/miscfs/procfs/procfs_linux.c | |
| parent | 2feabc3836655ae625f5a48e800ef0075107f3ad (diff) | |
Kill devsw_lock and just use specfs_lock. The two would need merging
in order to prevent unload of modules when a device that they provide
is still open.
Diffstat (limited to 'sys/miscfs/procfs/procfs_linux.c')
| -rw-r--r-- | sys/miscfs/procfs/procfs_linux.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/sys/miscfs/procfs/procfs_linux.c b/sys/miscfs/procfs/procfs_linux.c index e38757bbe25..070973ca44d 100644 --- a/sys/miscfs/procfs/procfs_linux.c +++ b/sys/miscfs/procfs/procfs_linux.c @@ -1,4 +1,4 @@ -/* $NetBSD: procfs_linux.c,v 1.53 2008/05/06 18:43:44 ad Exp $ */ +/* $NetBSD: procfs_linux.c,v 1.54 2008/05/31 21:34:42 ad Exp $ */ /* * Copyright (c) 2001 Wasabi Systems, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: procfs_linux.c,v 1.53 2008/05/06 18:43:44 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: procfs_linux.c,v 1.54 2008/05/31 21:34:42 ad Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -55,6 +55,8 @@ __KERNEL_RCSID(0, "$NetBSD: procfs_linux.c,v 1.53 2008/05/06 18:43:44 ad Exp $") #include <sys/conf.h> #include <miscfs/procfs/procfs.h> +#include <miscfs/specfs/specdev.h> + #include <compat/linux/common/linux_exec.h> #include <uvm/uvm_extern.h> @@ -187,7 +189,6 @@ procfs_dodevices(struct lwp *curl, struct proc *p, char *bf; int offset = 0; int i, error = ENAMETOOLONG; - extern kmutex_t devsw_lock; /* XXX elad - may need filtering. */ @@ -197,7 +198,7 @@ procfs_dodevices(struct lwp *curl, struct proc *p, if (offset >= LBFSZ) goto out; - mutex_enter(&devsw_lock); + mutex_enter(&specfs_lock); for (i = 0; i < max_devsw_convs; i++) { if ((devsw_conv[i].d_name == NULL) || (devsw_conv[i].d_cmajor == -1)) @@ -206,14 +207,14 @@ procfs_dodevices(struct lwp *curl, struct proc *p, offset += snprintf(&bf[offset], LBFSZ - offset, "%3d %s\n", devsw_conv[i].d_cmajor, devsw_conv[i].d_name); if (offset >= LBFSZ) { - mutex_exit(&devsw_lock); + mutex_exit(&specfs_lock); goto out; } } offset += snprintf(&bf[offset], LBFSZ - offset, "\nBlock devices:\n"); if (offset >= LBFSZ) { - mutex_exit(&devsw_lock); + mutex_exit(&specfs_lock); goto out; } @@ -225,11 +226,11 @@ procfs_dodevices(struct lwp *curl, struct proc *p, offset += snprintf(&bf[offset], LBFSZ - offset, "%3d %s\n", devsw_conv[i].d_bmajor, devsw_conv[i].d_name); if (offset >= LBFSZ) { - mutex_exit(&devsw_lock); + mutex_exit(&specfs_lock); goto out; } } - mutex_exit(&devsw_lock); + mutex_exit(&specfs_lock); error = uiomove_frombuf(bf, offset, uio); out: |
