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 *);

Reply via email to