Module Name: src Committed By: riastradh Date: Mon Mar 28 12:33:22 UTC 2022
Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_modevent.c src/external/cddl/osnet/dev/fbt: fbt.c src/external/cddl/osnet/dev/sdt: sdt.c src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_ioctl.c src/share/man/man9: devsw_attach.9 src/sys/coda: coda_psdev.c src/sys/dev: ccd.c clockctl.c src/sys/dev/hdaudio: hdaudio.c src/sys/dev/i2c: i2c.c src/sys/dev/pad: pad.c src/sys/dev/raidframe: rf_netbsdkintf.c src/sys/dev/sysmon: sysmon.c src/sys/dev/tprof: tprof.c src/sys/dist/pf/net: pf_ioctl.c src/sys/external/bsd/ipf/netinet: ip_fil_netbsd.c src/sys/fs/autofs: autofs_vfsops.c src/sys/kern: kern_drvctl.c subr_devsw.c src/sys/modules/examples/pollpal: pollpal.c src/sys/net: if_tap.c if_tun.c src/sys/rump/dev/lib/libbpf: bpf_component.c src/sys/rump/dev/lib/libdrvctl: drvctl_component.c src/sys/sys: conf.h Log Message: driver(9): devsw_detach never fails. Make it return void. Prune a whole lotta dead branches as a result of this. (Some logic calling this is also wrong for other reasons; devsw_detach is final -- you should never have any reason to decide to roll it back. To be cleaned up in subsequent commits...) XXX kernel ABI change to devsw_detach signature requires bump To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c cvs rdiff -u -r1.27 -r1.28 src/external/cddl/osnet/dev/fbt/fbt.c cvs rdiff -u -r1.20 -r1.21 src/external/cddl/osnet/dev/sdt/sdt.c cvs rdiff -u -r1.23 -r1.24 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c cvs rdiff -u -r1.3 -r1.4 src/share/man/man9/devsw_attach.9 cvs rdiff -u -r1.60 -r1.61 src/sys/coda/coda_psdev.c cvs rdiff -u -r1.187 -r1.188 src/sys/dev/ccd.c cvs rdiff -u -r1.38 -r1.39 src/sys/dev/clockctl.c cvs rdiff -u -r1.16 -r1.17 src/sys/dev/hdaudio/hdaudio.c cvs rdiff -u -r1.84 -r1.85 src/sys/dev/i2c/i2c.c cvs rdiff -u -r1.76 -r1.77 src/sys/dev/pad/pad.c cvs rdiff -u -r1.403 -r1.404 src/sys/dev/raidframe/rf_netbsdkintf.c cvs rdiff -u -r1.31 -r1.32 src/sys/dev/sysmon/sysmon.c cvs rdiff -u -r1.16 -r1.17 src/sys/dev/tprof/tprof.c cvs rdiff -u -r1.57 -r1.58 src/sys/dist/pf/net/pf_ioctl.c cvs rdiff -u -r1.36 -r1.37 src/sys/external/bsd/ipf/netinet/ip_fil_netbsd.c cvs rdiff -u -r1.11 -r1.12 src/sys/fs/autofs/autofs_vfsops.c cvs rdiff -u -r1.50 -r1.51 src/sys/kern/kern_drvctl.c cvs rdiff -u -r1.38 -r1.39 src/sys/kern/subr_devsw.c cvs rdiff -u -r1.3 -r1.4 src/sys/modules/examples/pollpal/pollpal.c cvs rdiff -u -r1.124 -r1.125 src/sys/net/if_tap.c cvs rdiff -u -r1.172 -r1.173 src/sys/net/if_tun.c cvs rdiff -u -r1.3 -r1.4 src/sys/rump/dev/lib/libbpf/bpf_component.c cvs rdiff -u -r1.4 -r1.5 src/sys/rump/dev/lib/libdrvctl/drvctl_component.c cvs rdiff -u -r1.154 -r1.155 src/sys/sys/conf.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c:1.6 src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c:1.7 --- src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c:1.6 Mon May 28 21:05:03 2018 +++ src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c Mon Mar 28 12:33:20 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_modevent.c,v 1.6 2018/05/28 21:05:03 chs Exp $ */ +/* $NetBSD: dtrace_modevent.c,v 1.7 2022/03/28 12:33:20 riastradh Exp $ */ /* * CDDL HEADER START @@ -42,9 +42,7 @@ dtrace_modcmd(modcmd_t cmd, void *data) return error; case MODULE_CMD_FINI: - error = devsw_detach(NULL, &dtrace_cdevsw); - if (error != 0) - return error; + devsw_detach(NULL, &dtrace_cdevsw); error = dtrace_unload(); if (error != 0) { Index: src/external/cddl/osnet/dev/fbt/fbt.c diff -u src/external/cddl/osnet/dev/fbt/fbt.c:1.27 src/external/cddl/osnet/dev/fbt/fbt.c:1.28 --- src/external/cddl/osnet/dev/fbt/fbt.c:1.27 Tue Jul 16 07:26:00 2019 +++ src/external/cddl/osnet/dev/fbt/fbt.c Mon Mar 28 12:33:20 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: fbt.c,v 1.27 2019/07/16 07:26:00 hannken Exp $ */ +/* $NetBSD: fbt.c,v 1.28 2022/03/28 12:33:20 riastradh Exp $ */ /* * CDDL HEADER START @@ -1329,7 +1329,8 @@ dtrace_fbt_modcmd(modcmd_t cmd, void *da error = fbt_unload(); if (error != 0) return error; - return devsw_detach(NULL, &fbt_cdevsw); + devsw_detach(NULL, &fbt_cdevsw); + return 0; case MODULE_CMD_AUTOUNLOAD: return EBUSY; default: Index: src/external/cddl/osnet/dev/sdt/sdt.c diff -u src/external/cddl/osnet/dev/sdt/sdt.c:1.20 src/external/cddl/osnet/dev/sdt/sdt.c:1.21 --- src/external/cddl/osnet/dev/sdt/sdt.c:1.20 Sat Mar 9 18:53:52 2019 +++ src/external/cddl/osnet/dev/sdt/sdt.c Mon Mar 28 12:33:20 2022 @@ -39,7 +39,7 @@ * unloaded; in particular, probes may not span multiple kernel modules. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sdt.c,v 1.20 2019/03/09 18:53:52 kamil Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sdt.c,v 1.21 2022/03/28 12:33:20 riastradh Exp $"); #include <sys/cdefs.h> #include <sys/proc.h> @@ -562,7 +562,8 @@ dtrace_sdt_modcmd(modcmd_t cmd, void *da error = sdt_unload(); if (error != 0) return error; - return devsw_detach(NULL, &sdt_cdevsw); + devsw_detach(NULL, &sdt_cdevsw); + return 0; case MODULE_CMD_AUTOUNLOAD: return EBUSY; default: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.23 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.24 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.23 Thu Mar 25 18:41:29 2021 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c Mon Mar 28 12:33:20 2022 @@ -7231,7 +7231,7 @@ zfs_modcmd(modcmd_t cmd, void *arg) if (error) return error; - (void) devsw_detach(&zfs_bdevsw, &zfs_cdevsw); + devsw_detach(&zfs_bdevsw, &zfs_cdevsw); attacherr: zfs_sysctl_fini(); Index: src/share/man/man9/devsw_attach.9 diff -u src/share/man/man9/devsw_attach.9:1.3 src/share/man/man9/devsw_attach.9:1.4 --- src/share/man/man9/devsw_attach.9:1.3 Sun Apr 30 12:30:00 2017 +++ src/share/man/man9/devsw_attach.9 Mon Mar 28 12:33:20 2022 @@ -1,4 +1,4 @@ -.\" $NetBSD: devsw_attach.9,v 1.3 2017/04/30 12:30:00 pgoyette Exp $ +.\" $NetBSD: devsw_attach.9,v 1.4 2022/03/28 12:33:20 riastradh Exp $ .\" .\" Copyright (c) 2015 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd April 30, 2017 +.Dd January 11, 2022 .Dt DEVSW 9 .Os .Sh NAME @@ -49,7 +49,7 @@ .Fa "const struct cdevsw *cdev" .Fa "devmajor_t *cmajor" .Fc -.Ft int +.Ft void .Fo devsw_detach .Fa "const struct bdevsw *bdev" .Fa "const struct cdevsw *cdev" @@ -130,6 +130,11 @@ and structures. .Fn devsw_detach should be called before a loaded device driver is unloaded. +The caller must ensure that there are no open instances of the device, +and that the device's +.Fn d_open +function will fail, before calling. +Fn devsw_detach . .Pp The .Fn bdevsw_lookup @@ -155,10 +160,8 @@ or .Sh RETURN VALUES Upon successful completion, .Fn devsw_attach -and -.Fn devsw_detach -return 0. -Otherwise they return an error value. +returns 0. +Otherwise it returns an error value. .Pp In case of failure, .Fn bdevsw_lookup Index: src/sys/coda/coda_psdev.c diff -u src/sys/coda/coda_psdev.c:1.60 src/sys/coda/coda_psdev.c:1.61 --- src/sys/coda/coda_psdev.c:1.60 Sun Sep 26 01:16:08 2021 +++ src/sys/coda/coda_psdev.c Mon Mar 28 12:33:20 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: coda_psdev.c,v 1.60 2021/09/26 01:16:08 thorpej Exp $ */ +/* $NetBSD: coda_psdev.c,v 1.61 2022/03/28 12:33:20 riastradh Exp $ */ /* * @@ -54,7 +54,7 @@ /* These routines are the device entry points for Venus. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: coda_psdev.c,v 1.60 2021/09/26 01:16:08 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: coda_psdev.c,v 1.61 2022/03/28 12:33:20 riastradh Exp $"); extern int coda_nc_initialized; /* Set if cache has been initialized */ @@ -758,7 +758,7 @@ vcoda_modcmd(modcmd_t cmd, void *arg) if (VC_OPEN(vcp)) return EBUSY; } - return devsw_detach(NULL, &vcoda_cdevsw); + devsw_detach(NULL, &vcoda_cdevsw); } #endif break; Index: src/sys/dev/ccd.c diff -u src/sys/dev/ccd.c:1.187 src/sys/dev/ccd.c:1.188 --- src/sys/dev/ccd.c:1.187 Sat Mar 12 17:27:50 2022 +++ src/sys/dev/ccd.c Mon Mar 28 12:33:20 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: ccd.c,v 1.187 2022/03/12 17:27:50 riastradh Exp $ */ +/* $NetBSD: ccd.c,v 1.188 2022/03/28 12:33:20 riastradh Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 1999, 2007, 2009 The NetBSD Foundation, Inc. @@ -62,7 +62,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * from: Utah $Hdr: cd.c 1.6 90/11/28$ + * from: Utah $Hdr$ * * @(#)cd.c 8.2 (Berkeley) 11/16/93 */ @@ -88,7 +88,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ccd.c,v 1.187 2022/03/12 17:27:50 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ccd.c,v 1.188 2022/03/28 12:33:20 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1710,7 +1710,7 @@ ccd_modcmd(modcmd_t cmd, void *arg) error = EBUSY; } else { mutex_exit(&ccd_lock); - error = devsw_detach(&ccd_bdevsw, &ccd_cdevsw); + devsw_detach(&ccd_bdevsw, &ccd_cdevsw); ccddetach(); } #endif Index: src/sys/dev/clockctl.c diff -u src/sys/dev/clockctl.c:1.38 src/sys/dev/clockctl.c:1.39 --- src/sys/dev/clockctl.c:1.38 Fri Feb 21 00:26:22 2020 +++ src/sys/dev/clockctl.c Mon Mar 28 12:33:20 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: clockctl.c,v 1.38 2020/02/21 00:26:22 joerg Exp $ */ +/* $NetBSD: clockctl.c,v 1.39 2022/03/28 12:33:20 riastradh Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: clockctl.c,v 1.38 2020/02/21 00:26:22 joerg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: clockctl.c,v 1.39 2022/03/28 12:33:20 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_ntp.h" @@ -182,14 +182,12 @@ clockctl_modcmd(modcmd_t cmd, void *data return EBUSY; } #ifdef _MODULE - error = devsw_detach(NULL, &clockctl_cdevsw); + devsw_detach(NULL, &clockctl_cdevsw); #endif mutex_exit(&clockctl_mtx); - if (error == 0) { - kauth_unlisten_scope(clockctl_listener); - mutex_destroy(&clockctl_mtx); - } + kauth_unlisten_scope(clockctl_listener); + mutex_destroy(&clockctl_mtx); break; default: Index: src/sys/dev/hdaudio/hdaudio.c diff -u src/sys/dev/hdaudio/hdaudio.c:1.16 src/sys/dev/hdaudio/hdaudio.c:1.17 --- src/sys/dev/hdaudio/hdaudio.c:1.16 Sat Aug 7 16:19:11 2021 +++ src/sys/dev/hdaudio/hdaudio.c Mon Mar 28 12:33:21 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: hdaudio.c,v 1.16 2021/08/07 16:19:11 thorpej Exp $ */ +/* $NetBSD: hdaudio.c,v 1.17 2022/03/28 12:33:21 riastradh Exp $ */ /* * Copyright (c) 2009 Precedence Technologies Ltd <supp...@precedence.co.uk> @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v 1.16 2021/08/07 16:19:11 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v 1.17 2022/03/28 12:33:21 riastradh Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -1636,11 +1636,7 @@ hdaudio_modcmd(modcmd_t cmd, void *opaqu error = config_cfdriver_detach(&hdaudio_cd); if (error) break; - error = devsw_detach(NULL, &hdaudio_cdevsw); - if (error) { - config_cfdriver_attach(&hdaudio_cd); - break; - } + devsw_detach(NULL, &hdaudio_cdevsw); #endif break; default: Index: src/sys/dev/i2c/i2c.c diff -u src/sys/dev/i2c/i2c.c:1.84 src/sys/dev/i2c/i2c.c:1.85 --- src/sys/dev/i2c/i2c.c:1.84 Mon Jan 24 09:42:14 2022 +++ src/sys/dev/i2c/i2c.c Mon Mar 28 12:33:21 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: i2c.c,v 1.84 2022/01/24 09:42:14 andvar Exp $ */ +/* $NetBSD: i2c.c,v 1.85 2022/03/28 12:33:21 riastradh Exp $ */ /* * Copyright (c) 2003 Wasabi Systems, Inc. @@ -53,7 +53,7 @@ #endif /* _KERNEL_OPT */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: i2c.c,v 1.84 2022/01/24 09:42:14 andvar Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i2c.c,v 1.85 2022/03/28 12:33:21 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -942,7 +942,7 @@ iic_modcmd(modcmd_t cmd, void *opaque) if (error) { aprint_error("%s: unable to init component\n", iic_cd.cd_name); - (void)devsw_detach(NULL, &iic_cdevsw); + devsw_detach(NULL, &iic_cdevsw); } mutex_exit(&iic_mtx); #endif @@ -960,10 +960,7 @@ iic_modcmd(modcmd_t cmd, void *opaque) mutex_exit(&iic_mtx); break; } - error = devsw_detach(NULL, &iic_cdevsw); - if (error != 0) - config_init_component(cfdriver_ioconf_iic, - cfattach_ioconf_iic, cfdata_ioconf_iic); + devsw_detach(NULL, &iic_cdevsw); #endif mutex_exit(&iic_mtx); break; Index: src/sys/dev/pad/pad.c diff -u src/sys/dev/pad/pad.c:1.76 src/sys/dev/pad/pad.c:1.77 --- src/sys/dev/pad/pad.c:1.76 Sat Mar 12 17:07:10 2022 +++ src/sys/dev/pad/pad.c Mon Mar 28 12:33:21 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: pad.c,v 1.76 2022/03/12 17:07:10 riastradh Exp $ */ +/* $NetBSD: pad.c,v 1.77 2022/03/28 12:33:21 riastradh Exp $ */ /*- * Copyright (c) 2007 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pad.c,v 1.76 2022/03/12 17:07:10 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pad.c,v 1.77 2022/03/28 12:33:21 riastradh Exp $"); #include <sys/param.h> #include <sys/types.h> @@ -777,9 +777,7 @@ pad_modcmd(modcmd_t cmd, void *arg) case MODULE_CMD_FINI: #ifdef _MODULE - error = devsw_detach(NULL, &pad_cdevsw); - if (error) - break; + devsw_detach(NULL, &pad_cdevsw); error = config_fini_component(cfdriver_ioconf_pad, pad_cfattach, cfdata_ioconf_pad); Index: src/sys/dev/raidframe/rf_netbsdkintf.c diff -u src/sys/dev/raidframe/rf_netbsdkintf.c:1.403 src/sys/dev/raidframe/rf_netbsdkintf.c:1.404 --- src/sys/dev/raidframe/rf_netbsdkintf.c:1.403 Fri Mar 11 01:59:33 2022 +++ src/sys/dev/raidframe/rf_netbsdkintf.c Mon Mar 28 12:33:21 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_netbsdkintf.c,v 1.403 2022/03/11 01:59:33 mrg Exp $ */ +/* $NetBSD: rf_netbsdkintf.c,v 1.404 2022/03/28 12:33:21 riastradh Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 2008-2011 The NetBSD Foundation, Inc. @@ -62,7 +62,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * from: Utah $Hdr: cd.c 1.6 90/11/28$ + * from: Utah $Hdr$ * * @(#)cd.c 8.2 (Berkeley) 11/16/93 */ @@ -101,7 +101,7 @@ ***********************************************************/ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.403 2022/03/11 01:59:33 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.404 2022/03/28 12:33:21 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_raid_autoconfig.h" @@ -4082,16 +4082,7 @@ raid_modcmd_fini(void) return error; } #endif - error = devsw_detach(&raid_bdevsw, &raid_cdevsw); - if (error != 0) { - aprint_error("%s: cannot detach devsw\n",__func__); -#ifdef _MODULE - config_cfdriver_attach(&raid_cd); -#endif - config_cfattach_attach(raid_cd.cd_name, &raid_ca); - mutex_exit(&raid_lock); - return error; - } + devsw_detach(&raid_bdevsw, &raid_cdevsw); rf_BootRaidframe(false); #if (RF_INCLUDE_PARITY_DECLUSTERING_DS > 0) rf_destroy_mutex2(rf_sparet_wait_mutex); Index: src/sys/dev/sysmon/sysmon.c diff -u src/sys/dev/sysmon/sysmon.c:1.31 src/sys/dev/sysmon/sysmon.c:1.32 --- src/sys/dev/sysmon/sysmon.c:1.31 Fri Dec 31 11:05:41 2021 +++ src/sys/dev/sysmon/sysmon.c Mon Mar 28 12:33:21 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: sysmon.c,v 1.31 2021/12/31 11:05:41 riastradh Exp $ */ +/* $NetBSD: sysmon.c,v 1.32 2022/03/28 12:33:21 riastradh Exp $ */ /*- * Copyright (c) 2000 Zembu Labs, Inc. @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sysmon.c,v 1.31 2021/12/31 11:05:41 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sysmon.c,v 1.32 2022/03/28 12:33:21 riastradh Exp $"); #include <sys/param.h> #include <sys/conf.h> @@ -356,7 +356,7 @@ sysmon_fini(void) if (error == 0) { mutex_enter(&sysmon_minor_mtx); sm_is_attached = false; - error = devsw_detach(NULL, &sysmon_cdevsw); + devsw_detach(NULL, &sysmon_cdevsw); mutex_exit(&sysmon_minor_mtx); } #endif Index: src/sys/dev/tprof/tprof.c diff -u src/sys/dev/tprof/tprof.c:1.16 src/sys/dev/tprof/tprof.c:1.17 --- src/sys/dev/tprof/tprof.c:1.16 Mon Nov 1 17:03:53 2021 +++ src/sys/dev/tprof/tprof.c Mon Mar 28 12:33:21 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: tprof.c,v 1.16 2021/11/01 17:03:53 skrll Exp $ */ +/* $NetBSD: tprof.c,v 1.17 2022/03/28 12:33:21 riastradh Exp $ */ /*- * Copyright (c)2008,2009,2010 YAMAMOTO Takashi, @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tprof.c,v 1.16 2021/11/01 17:03:53 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tprof.c,v 1.17 2022/03/28 12:33:21 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -768,13 +768,7 @@ tprof_modcmd(modcmd_t cmd, void *arg) case MODULE_CMD_FINI: #if defined(_MODULE) - { - int error; - error = devsw_detach(NULL, &tprof_cdevsw); - if (error) { - return error; - } - } + devsw_detach(NULL, &tprof_cdevsw); #endif /* defined(_MODULE) */ tprof_driver_fini(); return 0; Index: src/sys/dist/pf/net/pf_ioctl.c diff -u src/sys/dist/pf/net/pf_ioctl.c:1.57 src/sys/dist/pf/net/pf_ioctl.c:1.58 --- src/sys/dist/pf/net/pf_ioctl.c:1.57 Fri Feb 21 00:26:22 2020 +++ src/sys/dist/pf/net/pf_ioctl.c Mon Mar 28 12:33:21 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: pf_ioctl.c,v 1.57 2020/02/21 00:26:22 joerg Exp $ */ +/* $NetBSD: pf_ioctl.c,v 1.58 2022/03/28 12:33:21 riastradh Exp $ */ /* $OpenBSD: pf_ioctl.c,v 1.182 2007/06/24 11:17:13 mcbride Exp $ */ /* @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pf_ioctl.c,v 1.57 2020/02/21 00:26:22 joerg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pf_ioctl.c,v 1.58 2022/03/28 12:33:21 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -3459,7 +3459,8 @@ pf_modcmd(modcmd_t cmd, void *opaque) } else { pfdetach(); pflogdetach(); - return devsw_detach(NULL, &pf_cdevsw); + devsw_detach(NULL, &pf_cdevsw); + return 0; } default: return ENOTTY; Index: src/sys/external/bsd/ipf/netinet/ip_fil_netbsd.c diff -u src/sys/external/bsd/ipf/netinet/ip_fil_netbsd.c:1.36 src/sys/external/bsd/ipf/netinet/ip_fil_netbsd.c:1.37 --- src/sys/external/bsd/ipf/netinet/ip_fil_netbsd.c:1.36 Mon Mar 8 23:34:58 2021 +++ src/sys/external/bsd/ipf/netinet/ip_fil_netbsd.c Mon Mar 28 12:33:21 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_fil_netbsd.c,v 1.36 2021/03/08 23:34:58 christos Exp $ */ +/* $NetBSD: ip_fil_netbsd.c,v 1.37 2022/03/28 12:33:21 riastradh Exp $ */ /* * Copyright (C) 2012 by Darren Reed. @@ -8,7 +8,7 @@ #if !defined(lint) #if defined(__NetBSD__) #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ip_fil_netbsd.c,v 1.36 2021/03/08 23:34:58 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ip_fil_netbsd.c,v 1.37 2022/03/28 12:33:21 riastradh Exp $"); #else static const char sccsid[] = "@(#)ip_fil.c 2.41 6/5/96 (C) 1993-2000 Darren Reed"; static const char rcsid[] = "@(#)Id: ip_fil_netbsd.c,v 1.1.1.2 2012/07/22 13:45:17 darrenr Exp"; @@ -2256,7 +2256,7 @@ ipl_fini(void *opaque) { #ifdef _MODULE - (void)devsw_detach(NULL, &ipl_cdevsw); + devsw_detach(NULL, &ipl_cdevsw); #endif /* Index: src/sys/fs/autofs/autofs_vfsops.c diff -u src/sys/fs/autofs/autofs_vfsops.c:1.11 src/sys/fs/autofs/autofs_vfsops.c:1.12 --- src/sys/fs/autofs/autofs_vfsops.c:1.11 Sun Apr 26 17:00:31 2020 +++ src/sys/fs/autofs/autofs_vfsops.c Mon Mar 28 12:33:22 2022 @@ -33,7 +33,7 @@ * */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: autofs_vfsops.c,v 1.11 2020/04/26 17:00:31 tkusumi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: autofs_vfsops.c,v 1.12 2022/03/28 12:33:22 riastradh Exp $"); #include "autofs.h" @@ -496,9 +496,7 @@ autofs_modcmd(modcmd_t cmd, void *arg) } mutex_exit(&autofs_softc->sc_lock); - error = devsw_detach(NULL, &autofs_cdevsw); - if (error) - break; + devsw_detach(NULL, &autofs_cdevsw); #endif error = vfs_detach(&autofs_vfsops); if (error) Index: src/sys/kern/kern_drvctl.c diff -u src/sys/kern/kern_drvctl.c:1.50 src/sys/kern/kern_drvctl.c:1.51 --- src/sys/kern/kern_drvctl.c:1.50 Sat Feb 12 03:24:36 2022 +++ src/sys/kern/kern_drvctl.c Mon Mar 28 12:33:22 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_drvctl.c,v 1.50 2022/02/12 03:24:36 riastradh Exp $ */ +/* $NetBSD: kern_drvctl.c,v 1.51 2022/03/28 12:33:22 riastradh Exp $ */ /* * Copyright (c) 2004 @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_drvctl.c,v 1.50 2022/02/12 03:24:36 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_drvctl.c,v 1.51 2022/03/28 12:33:22 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -666,15 +666,10 @@ drvctl_modcmd(modcmd_t cmd, void *arg) devmon_insert_vec = saved_insert_vec; saved_insert_vec = NULL; #ifdef _MODULE - error = devsw_detach(NULL, &drvctl_cdevsw); - if (error != 0) { - saved_insert_vec = devmon_insert_vec; - devmon_insert_vec = devmon_insert; - } + devsw_detach(NULL, &drvctl_cdevsw); #endif mutex_exit(&drvctl_lock); - if (error == 0) - drvctl_fini(); + drvctl_fini(); break; default: Index: src/sys/kern/subr_devsw.c diff -u src/sys/kern/subr_devsw.c:1.38 src/sys/kern/subr_devsw.c:1.39 --- src/sys/kern/subr_devsw.c:1.38 Tue Nov 7 18:35:57 2017 +++ src/sys/kern/subr_devsw.c Mon Mar 28 12:33:22 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_devsw.c,v 1.38 2017/11/07 18:35:57 christos Exp $ */ +/* $NetBSD: subr_devsw.c,v 1.39 2022/03/28 12:33:22 riastradh Exp $ */ /*- * Copyright (c) 2001, 2002, 2007, 2008 The NetBSD Foundation, Inc. @@ -69,7 +69,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: subr_devsw.c,v 1.38 2017/11/07 18:35:57 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_devsw.c,v 1.39 2022/03/28 12:33:22 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_dtrace.h" @@ -343,14 +343,13 @@ devsw_detach_locked(const struct bdevsw } } -int +void devsw_detach(const struct bdevsw *bdev, const struct cdevsw *cdev) { mutex_enter(&device_lock); devsw_detach_locked(bdev, cdev); mutex_exit(&device_lock); - return 0; } /* Index: src/sys/modules/examples/pollpal/pollpal.c diff -u src/sys/modules/examples/pollpal/pollpal.c:1.3 src/sys/modules/examples/pollpal/pollpal.c:1.4 --- src/sys/modules/examples/pollpal/pollpal.c:1.3 Fri May 1 21:42:34 2020 +++ src/sys/modules/examples/pollpal/pollpal.c Mon Mar 28 12:33:22 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: pollpal.c,v 1.3 2020/05/01 21:42:34 christos Exp $ */ +/* $NetBSD: pollpal.c,v 1.4 2022/03/28 12:33:22 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pollpal.c,v 1.3 2020/05/01 21:42:34 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pollpal.c,v 1.4 2022/03/28 12:33:22 riastradh Exp $"); #include <sys/module.h> #include <sys/param.h> @@ -311,7 +311,8 @@ pollpal_modcmd(modcmd_t cmd, void *arg _ case MODULE_CMD_FINI: if (pollpal_nopen != 0) return EBUSY; - return devsw_detach(NULL, &pollpal_cdevsw); + devsw_detach(NULL, &pollpal_cdevsw); + return 0; default: return ENOTTY; } Index: src/sys/net/if_tap.c diff -u src/sys/net/if_tap.c:1.124 src/sys/net/if_tap.c:1.125 --- src/sys/net/if_tap.c:1.124 Sun Sep 26 15:58:33 2021 +++ src/sys/net/if_tap.c Mon Mar 28 12:33:22 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: if_tap.c,v 1.124 2021/09/26 15:58:33 thorpej Exp $ */ +/* $NetBSD: if_tap.c,v 1.125 2022/03/28 12:33:22 riastradh Exp $ */ /* * Copyright (c) 2003, 2004, 2008, 2009 The NetBSD Foundation. @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_tap.c,v 1.124 2021/09/26 15:58:33 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_tap.c,v 1.125 2022/03/28 12:33:22 riastradh Exp $"); #if defined(_KERNEL_OPT) @@ -256,9 +256,7 @@ tapdetach(void) if_clone_detach(&tap_cloners); #ifdef _MODULE - error = devsw_detach(NULL, &tap_cdevsw); - if (error != 0) - goto out2; + devsw_detach(NULL, &tap_cdevsw); #endif if (tap_count != 0) { @@ -277,7 +275,6 @@ tapdetach(void) out1: #ifdef _MODULE devsw_attach("tap", NULL, &tap_bmajor, &tap_cdevsw, &tap_cmajor); - out2: #endif if_clone_attach(&tap_cloners); Index: src/sys/net/if_tun.c diff -u src/sys/net/if_tun.c:1.172 src/sys/net/if_tun.c:1.173 --- src/sys/net/if_tun.c:1.172 Tue Mar 15 00:05:17 2022 +++ src/sys/net/if_tun.c Mon Mar 28 12:33:22 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: if_tun.c,v 1.172 2022/03/15 00:05:17 riastradh Exp $ */ +/* $NetBSD: if_tun.c,v 1.173 2022/03/28 12:33:22 riastradh Exp $ */ /* * Copyright (c) 1988, Julian Onions <j...@cs.nott.ac.uk> @@ -19,7 +19,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_tun.c,v 1.172 2022/03/15 00:05:17 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_tun.c,v 1.173 2022/03/28 12:33:22 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -142,17 +142,10 @@ tuninit(void) static int tundetach(void) { -#ifdef _MODULE - int error; -#endif if_clone_detach(&tun_cloner); #ifdef _MODULE - error = devsw_detach(NULL, &tun_cdevsw); - if (error != 0) { - if_clone_attach(&tun_cloner); - return error; - } + devsw_detach(NULL, &tun_cdevsw); #endif if (!LIST_EMPTY(&tun_softc_list) || !LIST_EMPTY(&tunz_softc_list)) { Index: src/sys/rump/dev/lib/libbpf/bpf_component.c diff -u src/sys/rump/dev/lib/libbpf/bpf_component.c:1.3 src/sys/rump/dev/lib/libbpf/bpf_component.c:1.4 --- src/sys/rump/dev/lib/libbpf/bpf_component.c:1.3 Tue Jul 19 02:47:45 2016 +++ src/sys/rump/dev/lib/libbpf/bpf_component.c Mon Mar 28 12:33:22 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: bpf_component.c,v 1.3 2016/07/19 02:47:45 pgoyette Exp $ */ +/* $NetBSD: bpf_component.c,v 1.4 2022/03/28 12:33:22 riastradh Exp $ */ /* * Copyright (c) 2010 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: bpf_component.c,v 1.3 2016/07/19 02:47:45 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bpf_component.c,v 1.4 2022/03/28 12:33:22 riastradh Exp $"); #include <sys/param.h> #include <sys/conf.h> @@ -50,6 +50,5 @@ RUMP_COMPONENT(RUMP_COMPONENT_NET) panic("bpf devsw attach failed: %d", error); if ((error = rump_vfs_makeonedevnode(S_IFCHR, "/dev/bpf", cmaj, 0)) !=0) panic("cannot create bpf device nodes: %d", error); - if ((error = devsw_detach(NULL, &bpf_cdevsw)) != 0) - panic("cannot detach bpf devsw: %d", error); + devsw_detach(NULL, &bpf_cdevsw); } Index: src/sys/rump/dev/lib/libdrvctl/drvctl_component.c diff -u src/sys/rump/dev/lib/libdrvctl/drvctl_component.c:1.4 src/sys/rump/dev/lib/libdrvctl/drvctl_component.c:1.5 --- src/sys/rump/dev/lib/libdrvctl/drvctl_component.c:1.4 Sun Jan 15 01:48:05 2017 +++ src/sys/rump/dev/lib/libdrvctl/drvctl_component.c Mon Mar 28 12:33:22 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: drvctl_component.c,v 1.4 2017/01/15 01:48:05 pgoyette Exp $ */ +/* $NetBSD: drvctl_component.c,v 1.5 2022/03/28 12:33:22 riastradh Exp $ */ /* * Copyright (c) 2010 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: drvctl_component.c,v 1.4 2017/01/15 01:48:05 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: drvctl_component.c,v 1.5 2022/03/28 12:33:22 riastradh Exp $"); #include <sys/param.h> #include <sys/conf.h> @@ -51,7 +51,5 @@ RUMP_COMPONENT(RUMP_COMPONENT_DEV) if ( error !=0) panic("cannot create drvctl device node: %d", error); - error = devsw_detach(NULL, &drvctl_cdevsw); - if (error != 0) - panic("cannot detach drvctl devsw: %d", error); + devsw_detach(NULL, &drvctl_cdevsw); } Index: src/sys/sys/conf.h diff -u src/sys/sys/conf.h:1.154 src/sys/sys/conf.h:1.155 --- src/sys/sys/conf.h:1.154 Tue Oct 8 12:49:56 2019 +++ src/sys/sys/conf.h Mon Mar 28 12:33:22 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: conf.h,v 1.154 2019/10/08 12:49:56 uwe Exp $ */ +/* $NetBSD: conf.h,v 1.155 2022/03/28 12:33:22 riastradh Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -104,7 +104,7 @@ extern kmutex_t device_lock; int devsw_attach(const char *, const struct bdevsw *, devmajor_t *, const struct cdevsw *, devmajor_t *); -int devsw_detach(const struct bdevsw *, const struct cdevsw *); +void devsw_detach(const struct bdevsw *, const struct cdevsw *); const struct bdevsw *bdevsw_lookup(dev_t); const struct cdevsw *cdevsw_lookup(dev_t); devmajor_t bdevsw_lookup_major(const struct bdevsw *);