aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/evdev/evdev_private.h
diff options
context:
space:
mode:
authorVladimir Kondratyev <wulf@FreeBSD.org>2018-10-27 20:22:41 +0000
committerVladimir Kondratyev <wulf@FreeBSD.org>2018-10-27 20:22:41 +0000
commitf86e7267f5fd81461dbf15ee92763403191c43b9 (patch)
tree66665d22ffb1420027c219fe23af3d27eeaf4b9a /sys/dev/evdev/evdev_private.h
parentb5532964e74ae1028c6f3aa5257f4af52251154c (diff)
Notes
Diffstat (limited to 'sys/dev/evdev/evdev_private.h')
-rw-r--r--sys/dev/evdev/evdev_private.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/dev/evdev/evdev_private.h b/sys/dev/evdev/evdev_private.h
index 05206a9d09bd..e1a5d1822cd8 100644
--- a/sys/dev/evdev/evdev_private.h
+++ b/sys/dev/evdev/evdev_private.h
@@ -132,9 +132,14 @@ struct evdev_dev
LIST_HEAD(, evdev_client) ev_clients;
};
+#define SYSTEM_CONSOLE_LOCK &Giant
+
#define EVDEV_LOCK(evdev) mtx_lock((evdev)->ev_lock)
#define EVDEV_UNLOCK(evdev) mtx_unlock((evdev)->ev_lock)
-#define EVDEV_LOCK_ASSERT(evdev) mtx_assert((evdev)->ev_lock, MA_OWNED)
+#define EVDEV_LOCK_ASSERT(evdev) do { \
+ if ((evdev)->ev_lock != SYSTEM_CONSOLE_LOCK) \
+ mtx_assert((evdev)->ev_lock, MA_OWNED); \
+} while (0)
#define EVDEV_ENTER(evdev) do { \
if ((evdev)->ev_lock_type == EV_LOCK_INTERNAL) \
EVDEV_LOCK(evdev); \