summaryrefslogtreecommitdiff
path: root/sys/dev/sysmon
diff options
context:
space:
mode:
authorxtraeme <xtraeme@NetBSD.org>2007-09-01 12:46:04 +0000
committerxtraeme <xtraeme@NetBSD.org>2007-09-01 12:46:04 +0000
commit9da1b0ba869d0da27dff3a36976baaf63ea465c2 (patch)
tree901ed7463261336b75576732505fb3ec9d65636e /sys/dev/sysmon
parentb2556784605993e4307fffedda737d6c6c6022a2 (diff)
sme_event_register: don't forget to add the object in dictionary when
a critical value is added via ENVSYS_SETDICTIONARY.
Diffstat (limited to 'sys/dev/sysmon')
-rw-r--r--sys/dev/sysmon/sysmon_envsys_events.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/sys/dev/sysmon/sysmon_envsys_events.c b/sys/dev/sysmon/sysmon_envsys_events.c
index 649530a5aa0..b56de729207 100644
--- a/sys/dev/sysmon/sysmon_envsys_events.c
+++ b/sys/dev/sysmon/sysmon_envsys_events.c
@@ -1,4 +1,4 @@
-/* $NetBSD: sysmon_envsys_events.c,v 1.26 2007/09/01 00:12:07 xtraeme Exp $ */
+/* $NetBSD: sysmon_envsys_events.c,v 1.27 2007/09/01 12:46:04 xtraeme Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sysmon_envsys_events.c,v 1.26 2007/09/01 00:12:07 xtraeme Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysmon_envsys_events.c,v 1.27 2007/09/01 12:46:04 xtraeme Exp $");
#include <sys/param.h>
#include <sys/types.h>
@@ -234,12 +234,18 @@ sme_event_register(prop_dictionary_t sdict, envsys_data_t *edata,
sizeof(see->pes.pes_sensname));
see->snum = edata->sensor;
+ LIST_INSERT_HEAD(&sme_events_list, see, see_list);
+ if (objkey && critval) {
+ error = sme_sensor_upint32(sdict, objkey, critval);
+ if (error) {
+ mutex_exit(&sme_event_mtx);
+ goto out;
+ }
+ }
DPRINTF(("%s: registering dev=%s sensor=%s snum=%d type=%d "
"critval=%" PRIu32 "\n", __func__,
see->pes.pes_dvname, see->pes.pes_sensname,
see->snum, see->type, see->critval));
-
- LIST_INSERT_HEAD(&sme_events_list, see, see_list);
/*
* Initialize the events framework if it wasn't initialized
* before.
@@ -249,6 +255,7 @@ sme_event_register(prop_dictionary_t sdict, envsys_data_t *edata,
if (sme_events_initialized == false)
error = sme_events_init();
mutex_exit(&sme_event_init_mtx);
+out:
if (error)
kmem_free(see, sizeof(*see));
return error;