Module Name:    src
Committed By:   mlelstv
Date:           Wed Jun 29 15:56:58 UTC 2022

Modified Files:
        src/sys/dev/isa: aps.c finsio_isa.c itesio_isa.c smsc.c ug_isa.c

Log Message:
unregister sensors only when registered.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/dev/isa/aps.c
cvs rdiff -u -r1.8 -r1.9 src/sys/dev/isa/finsio_isa.c \
    src/sys/dev/isa/ug_isa.c
cvs rdiff -u -r1.29 -r1.30 src/sys/dev/isa/itesio_isa.c
cvs rdiff -u -r1.12 -r1.13 src/sys/dev/isa/smsc.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/isa/aps.c
diff -u src/sys/dev/isa/aps.c:1.17 src/sys/dev/isa/aps.c:1.18
--- src/sys/dev/isa/aps.c:1.17	Thu Apr 23 23:23:00 2015
+++ src/sys/dev/isa/aps.c	Wed Jun 29 15:56:58 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: aps.c,v 1.17 2015/04/23 23:23:00 pgoyette Exp $	*/
+/*	$NetBSD: aps.c,v 1.18 2022/06/29 15:56:58 mlelstv Exp $	*/
 /*	$OpenBSD: aps.c,v 1.15 2007/05/19 19:14:11 tedu Exp $	*/
 /*	$OpenBSD: aps.c,v 1.17 2008/06/27 06:08:43 canacar Exp $	*/
 /*
@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aps.c,v 1.17 2015/04/23 23:23:00 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aps.c,v 1.18 2022/06/29 15:56:58 mlelstv Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -348,6 +348,7 @@ aps_attach(device_t parent, device_t sel
 		if (sysmon_envsys_sensor_attach(sc->sc_sme,
 			&sc->sc_sensor[i])) {
 			sysmon_envsys_destroy(sc->sc_sme);
+			sc->sc_sme = NULL;
 			goto out;
 		}
 	}
@@ -361,6 +362,7 @@ aps_attach(device_t parent, device_t sel
 		aprint_error_dev(self,
 		    "unable to register with sysmon (%d)\n", i);
 		sysmon_envsys_destroy(sc->sc_sme);
+		sc->sc_sme = NULL;
 		goto out;
 	}
 

Index: src/sys/dev/isa/finsio_isa.c
diff -u src/sys/dev/isa/finsio_isa.c:1.8 src/sys/dev/isa/finsio_isa.c:1.9
--- src/sys/dev/isa/finsio_isa.c:1.8	Thu Apr 23 23:23:00 2015
+++ src/sys/dev/isa/finsio_isa.c	Wed Jun 29 15:56:58 2022
@@ -1,5 +1,5 @@
 /*	$OpenBSD: fins.c,v 1.1 2008/03/19 19:33:09 deraadt Exp $	*/
-/*	$NetBSD: finsio_isa.c,v 1.8 2015/04/23 23:23:00 pgoyette Exp $	*/
+/*	$NetBSD: finsio_isa.c,v 1.9 2022/06/29 15:56:58 mlelstv Exp $	*/
 
 /*
  * Copyright (c) 2008 Juan Romero Pardines
@@ -19,7 +19,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: finsio_isa.c,v 1.8 2015/04/23 23:23:00 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: finsio_isa.c,v 1.9 2022/06/29 15:56:58 mlelstv Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -573,6 +573,7 @@ finsio_isa_attach(device_t parent, devic
 
 fail:
 	sysmon_envsys_destroy(sc->sc_sme);
+	sc->sc_sme = NULL;
 	bus_space_unmap(sc->sc_iot, sc->sc_ioh, FINSIO_DECODE_SIZE);
 }
 
@@ -581,7 +582,8 @@ finsio_isa_detach(device_t self, int fla
 {
 	struct finsio_softc *sc = device_private(self);
 
-	sysmon_envsys_unregister(sc->sc_sme);
+	if (sc->sc_sme != NULL)
+		sysmon_envsys_unregister(sc->sc_sme);
 	bus_space_unmap(sc->sc_iot, sc->sc_ioh, FINSIO_DECODE_SIZE);
 	return 0;
 }
Index: src/sys/dev/isa/ug_isa.c
diff -u src/sys/dev/isa/ug_isa.c:1.8 src/sys/dev/isa/ug_isa.c:1.9
--- src/sys/dev/isa/ug_isa.c:1.8	Wed Jun 24 19:24:44 2020
+++ src/sys/dev/isa/ug_isa.c	Wed Jun 29 15:56:58 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: ug_isa.c,v 1.8 2020/06/24 19:24:44 jdolecek Exp $ */
+/* $NetBSD: ug_isa.c,v 1.9 2022/06/29 15:56:58 mlelstv Exp $ */
 
 /*
  * Copyright (c) 2007 Mihai Chelaru <kef...@netbsd.ro>
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ug_isa.c,v 1.8 2020/06/24 19:24:44 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ug_isa.c,v 1.9 2022/06/29 15:56:58 mlelstv Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -148,6 +148,7 @@ ug_isa_attach(device_t parent, device_t 
 		if (sysmon_envsys_sensor_attach(sc->sc_sme,
 						&sc->sc_sensor[i])) {
 			sysmon_envsys_destroy(sc->sc_sme);
+			sc->sc_sme = NULL;
 			goto out;
 		}
 	}
@@ -158,6 +159,7 @@ ug_isa_attach(device_t parent, device_t 
 	if (sysmon_envsys_register(sc->sc_sme)) {
 		aprint_error_dev(self, "unable to register with sysmon\n");
 		sysmon_envsys_destroy(sc->sc_sme);
+		sc->sc_sme = NULL;
 		goto out;
 	}
 
@@ -173,7 +175,8 @@ ug_isa_detach(device_t self, int flags)
 {
 	struct ug_softc *sc = device_private(self);
 
-	sysmon_envsys_unregister(sc->sc_sme);
+	if (sc->sc_sme != NULL)
+		sysmon_envsys_unregister(sc->sc_sme);
 	bus_space_unmap(sc->sc_iot, sc->sc_ioh, 8);
 	return 0;
 }

Index: src/sys/dev/isa/itesio_isa.c
diff -u src/sys/dev/isa/itesio_isa.c:1.29 src/sys/dev/isa/itesio_isa.c:1.30
--- src/sys/dev/isa/itesio_isa.c:1.29	Sat Jul  3 04:44:16 2021
+++ src/sys/dev/isa/itesio_isa.c	Wed Jun 29 15:56:58 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: itesio_isa.c,v 1.29 2021/07/03 04:44:16 nonaka Exp $ */
+/*	$NetBSD: itesio_isa.c,v 1.30 2022/06/29 15:56:58 mlelstv Exp $ */
 /*	Derived from $OpenBSD: it.c,v 1.19 2006/04/10 00:57:54 deraadt Exp $	*/
 
 /*
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: itesio_isa.c,v 1.29 2021/07/03 04:44:16 nonaka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: itesio_isa.c,v 1.30 2022/06/29 15:56:58 mlelstv Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -311,6 +311,7 @@ itesio_isa_attach(device_t parent, devic
 		if (sysmon_envsys_sensor_attach(sc->sc_sme,
 						&sc->sc_sensor[i])) {
 			sysmon_envsys_destroy(sc->sc_sme);
+			sc->sc_sme = NULL;
 			goto out;
 		}
 	}
@@ -325,6 +326,7 @@ itesio_isa_attach(device_t parent, devic
 		aprint_error_dev(self,
 		    "unable to register with sysmon (%d)\n", error);
 		sysmon_envsys_destroy(sc->sc_sme);
+		sc->sc_sme = NULL;
 		goto out;
 	}
 	sc->sc_hwmon_enabled = true;

Index: src/sys/dev/isa/smsc.c
diff -u src/sys/dev/isa/smsc.c:1.12 src/sys/dev/isa/smsc.c:1.13
--- src/sys/dev/isa/smsc.c:1.12	Thu Apr 23 23:23:00 2015
+++ src/sys/dev/isa/smsc.c	Wed Jun 29 15:56:58 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: smsc.c,v 1.12 2015/04/23 23:23:00 pgoyette Exp $ */
+/*	$NetBSD: smsc.c,v 1.13 2022/06/29 15:56:58 mlelstv Exp $ */
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: smsc.c,v 1.12 2015/04/23 23:23:00 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: smsc.c,v 1.13 2022/06/29 15:56:58 mlelstv Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -217,6 +217,7 @@ smsc_attach(device_t parent, device_t se
 		if (sysmon_envsys_sensor_attach(sc->sc_sme,
 						&sc->sc_sensor[i])) {
 			sysmon_envsys_destroy(sc->sc_sme);
+			sc->sc_sme = NULL;
 			bus_space_unmap(sc->sc_iot, sc->sc_ioh, 2);
 			return;
 		}
@@ -229,6 +230,7 @@ smsc_attach(device_t parent, device_t se
 	if ((i = sysmon_envsys_register(sc->sc_sme)) != 0) {
 		aprint_error(": unable to register with sysmon (%d)\n", i);
 		sysmon_envsys_destroy(sc->sc_sme);
+		sc->sc_sme = NULL;
 		bus_space_unmap(sc->sc_iot, sc->sc_ioh, 2);
 		return;
 	}
@@ -255,7 +257,8 @@ smsc_detach(device_t self, int flags)
 {
 	struct smsc_softc *sc = device_private(self);
 
-	sysmon_envsys_unregister(sc->sc_sme);
+	if (sc->sc_sme != NULL)
+		sysmon_envsys_unregister(sc->sc_sme);
 	bus_space_unmap(sc->sc_iot, sc->sc_ioh, 2);
 	return 0;
 }

Reply via email to