Module Name:    src
Committed By:   pgoyette
Date:           Wed Sep 19 06:26:13 UTC 2018

Modified Files:
        src/sys/sys [pgoyette-compat]: module_hook.h

Log Message:
Ooops - we need to grab the mutex before we can drain the localcount!


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/sys/sys/module_hook.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/sys/module_hook.h
diff -u src/sys/sys/module_hook.h:1.1.2.1 src/sys/sys/module_hook.h:1.1.2.2
--- src/sys/sys/module_hook.h:1.1.2.1	Tue Sep 18 21:38:08 2018
+++ src/sys/sys/module_hook.h	Wed Sep 19 06:26:13 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: module_hook.h,v 1.1.2.1 2018/09/18 21:38:08 pgoyette Exp $	*/
+/* $NetBSD: module_hook.h,v 1.1.2.2 2018/09/19 06:26:13 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -116,6 +116,9 @@ static void (hook ## _unset)(void)				\
 	KASSERT(hook.hooked);					\
 	KASSERT(hook.f);					\
 								\
+	/* Grab the mutex */					\
+	mutex_enter(&hook.mtx);					\
+								\
 	/* Prevent new localcount_acquire calls.  */		\
 	hook.hooked = false;					\
 								\
@@ -125,6 +128,8 @@ static void (hook ## _unset)(void)				\
 	/* Wait for existing localcount references to drain.  */\
 	localcount_drain(&hook.lc, &hook.cv, &hook.mtx);	\
 								\
+	/* Release the mutex and clean up all resources */	\
+	mutex_exit(&hook.mtx);					\
 	localcount_fini(&hook.lc);				\
 	cv_destroy(&hook.cv);					\
 	mutex_destroy(&hook.mtx);				\

Reply via email to