Module Name: src Committed By: skrll Date: Mon Mar 28 09:50:40 UTC 2016
Modified Files: src/sys/kern: subr_autoconf.c Log Message: Simplify. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.240 -r1.241 src/sys/kern/subr_autoconf.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/kern/subr_autoconf.c diff -u src/sys/kern/subr_autoconf.c:1.240 src/sys/kern/subr_autoconf.c:1.241 --- src/sys/kern/subr_autoconf.c:1.240 Sun Mar 13 10:07:22 2016 +++ src/sys/kern/subr_autoconf.c Mon Mar 28 09:50:40 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_autoconf.c,v 1.240 2016/03/13 10:07:22 mlelstv Exp $ */ +/* $NetBSD: subr_autoconf.c,v 1.241 2016/03/28 09:50:40 skrll Exp $ */ /* * Copyright (c) 1996, 2000 Christopher G. Demetriou @@ -77,7 +77,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: subr_autoconf.c,v 1.240 2016/03/13 10:07:22 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_autoconf.c,v 1.241 2016/03/28 09:50:40 skrll Exp $"); #ifdef _KERNEL_OPT #include "opt_ddb.h" @@ -172,8 +172,6 @@ static void config_devdelete(device_t); static void config_devunlink(device_t, struct devicelist *); static void config_makeroom(int, struct cfdriver *); static void config_devlink(device_t); -static void config_alldevs_unlock(int); -static int config_alldevs_lock(void); static void config_alldevs_enter(struct alldevs_foray *); static void config_alldevs_exit(struct alldevs_foray *); static void config_add_attrib_dict(device_t); @@ -1220,9 +1218,8 @@ config_makeroom(int n, struct cfdriver * static void config_devlink(device_t dev) { - int s; - s = config_alldevs_lock(); + mutex_enter(&alldevs_mtx); KASSERT(device_cfdriver(dev)->cd_devs[dev->dv_unit] == dev); @@ -1231,7 +1228,7 @@ config_devlink(device_t dev) * readers and writers are in the list. */ TAILQ_INSERT_TAIL(&alldevs, dev, dv_list); - config_alldevs_unlock(s); + mutex_exit(&alldevs_mtx); } static void @@ -1715,7 +1712,7 @@ config_detach(device_t dev, int flags) #ifdef DIAGNOSTIC device_t d; #endif - int rv = 0, s; + int rv = 0; #ifdef DIAGNOSTIC cf = dev->dv_cfdata; @@ -1730,9 +1727,9 @@ config_detach(device_t dev, int flags) ca = dev->dv_cfattach; KASSERT(ca != NULL); - s = config_alldevs_lock(); + mutex_enter(&alldevs_mtx); if (dev->dv_del_gen != 0) { - config_alldevs_unlock(s); + mutex_exit(&alldevs_mtx); #ifdef DIAGNOSTIC printf("%s: %s is already detached\n", __func__, device_xname(dev)); @@ -1740,7 +1737,7 @@ config_detach(device_t dev, int flags) return ENOENT; } alldevs_nwrite++; - config_alldevs_unlock(s); + mutex_exit(&alldevs_mtx); if (!detachall && (flags & (DETACH_SHUTDOWN|DETACH_FORCE)) == DETACH_SHUTDOWN && @@ -2204,33 +2201,19 @@ config_twiddle_fn(void *cookie) mutex_exit(&config_misc_lock); } -static int -config_alldevs_lock(void) -{ - mutex_enter(&alldevs_mtx); - return 0; -} - static void config_alldevs_enter(struct alldevs_foray *af) { TAILQ_INIT(&af->af_garbage); - af->af_s = config_alldevs_lock(); + mutex_enter(&alldevs_mtx); config_collect_garbage(&af->af_garbage); } static void config_alldevs_exit(struct alldevs_foray *af) { - config_alldevs_unlock(af->af_s); - config_dump_garbage(&af->af_garbage); -} - -/*ARGSUSED*/ -static void -config_alldevs_unlock(int s) -{ mutex_exit(&alldevs_mtx); + config_dump_garbage(&af->af_garbage); } /* @@ -2242,15 +2225,13 @@ device_t device_lookup(cfdriver_t cd, int unit) { device_t dv; - int s; - s = config_alldevs_lock(); - KASSERT(mutex_owned(&alldevs_mtx)); + mutex_enter(&alldevs_mtx); if (unit < 0 || unit >= cd->cd_ndevs) dv = NULL; else if ((dv = cd->cd_devs[unit]) != NULL && dv->dv_del_gen != 0) dv = NULL; - config_alldevs_unlock(s); + mutex_exit(&alldevs_mtx); return dv; } @@ -2789,11 +2770,10 @@ void deviter_init(deviter_t *di, deviter_flags_t flags) { device_t dv; - int s; memset(di, 0, sizeof(*di)); - s = config_alldevs_lock(); + mutex_enter(&alldevs_mtx); if ((flags & DEVITER_F_SHUTDOWN) != 0) flags |= DEVITER_F_RW; @@ -2802,7 +2782,7 @@ deviter_init(deviter_t *di, deviter_flag else alldevs_nread++; di->di_gen = alldevs_gen++; - config_alldevs_unlock(s); + mutex_exit(&alldevs_mtx); di->di_flags = flags; @@ -2909,15 +2889,14 @@ void deviter_release(deviter_t *di) { bool rw = (di->di_flags & DEVITER_F_RW) != 0; - int s; - s = config_alldevs_lock(); + mutex_enter(&alldevs_mtx); if (rw) --alldevs_nwrite; else --alldevs_nread; /* XXX wake a garbage-collection thread */ - config_alldevs_unlock(s); + mutex_exit(&alldevs_mtx); } const char *