diff options
-rw-r--r-- | sys/kern/subr_eventhandler.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/kern/subr_eventhandler.c b/sys/kern/subr_eventhandler.c index 5cb2500..0a64ff1 100644 --- a/sys/kern/subr_eventhandler.c +++ b/sys/kern/subr_eventhandler.c @@ -101,11 +101,11 @@ eventhandler_register(struct eventhandler_list *list, char *name, sx_init(&list->el_lock, name); list->el_flags = EHE_INITTED; } + mtx_unlock(&eventhandler_mutex); /* allocate an entry for this handler, populate it */ if ((eg = malloc(sizeof(struct eventhandler_entry_generic), M_EVENTHANDLER, M_NOWAIT)) == NULL) { - mtx_unlock(&eventhandler_mutex); return(NULL); } eg->func = func; @@ -125,7 +125,6 @@ eventhandler_register(struct eventhandler_list *list, char *name, if (ep == NULL) TAILQ_INSERT_TAIL(&list->el_entries, &eg->ee, ee_link); EHE_UNLOCK(list); - mtx_unlock(&eventhandler_mutex); return(&eg->ee); } |