summaryrefslogtreecommitdiff
path: root/sys/dev/kbdmux
diff options
context:
space:
mode:
authorKyle Evans <kevans@FreeBSD.org>2019-12-16 16:41:24 +0000
committerKyle Evans <kevans@FreeBSD.org>2019-12-16 16:41:24 +0000
commit5a7a578be9e92e1ceb16fced892a9e4f2eba1712 (patch)
tree909914ece201178363199d1ebc8f88d2c8142afa /sys/dev/kbdmux
parent1fa29c42bb742a5f31926b7a4eb61b6164734d00 (diff)
Notes
Diffstat (limited to 'sys/dev/kbdmux')
-rw-r--r--sys/dev/kbdmux/kbdmux.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/dev/kbdmux/kbdmux.c b/sys/dev/kbdmux/kbdmux.c
index c2a8bd2779db..d88d1e48dd0e 100644
--- a/sys/dev/kbdmux/kbdmux.c
+++ b/sys/dev/kbdmux/kbdmux.c
@@ -1423,11 +1423,15 @@ kbdmux_modevent(module_t mod, int type, void *data)
switch (type) {
case MOD_LOAD:
+#ifdef KLD_MODULE
if ((error = kbd_add_driver(&kbdmux_kbd_driver)) != 0)
break;
+#endif
if ((sw = kbd_get_switch(KEYBOARD_NAME)) == NULL) {
+#ifdef KLD_MODULE
kbd_delete_driver(&kbdmux_kbd_driver);
+#endif
error = ENXIO;
break;
}
@@ -1436,14 +1440,18 @@ kbdmux_modevent(module_t mod, int type, void *data)
if ((error = (*sw->probe)(0, NULL, 0)) != 0 ||
(error = (*sw->init)(0, &kbd, NULL, 0)) != 0) {
+#ifdef KLD_MODULE
kbd_delete_driver(&kbdmux_kbd_driver);
+#endif
break;
}
#ifdef KBD_INSTALL_CDEV
if ((error = kbd_attach(kbd)) != 0) {
(*sw->term)(kbd);
+#ifdef KLD_MODULE
kbd_delete_driver(&kbdmux_kbd_driver);
+#endif
break;
}
#endif
@@ -1454,7 +1462,9 @@ kbdmux_modevent(module_t mod, int type, void *data)
kbd_detach(kbd);
#endif
(*sw->term)(kbd);
+#ifdef KLD_MODULE
kbd_delete_driver(&kbdmux_kbd_driver);
+#endif
break;
}
break;
@@ -1470,7 +1480,9 @@ kbdmux_modevent(module_t mod, int type, void *data)
kbd_detach(kbd);
#endif
(*sw->term)(kbd);
+#ifdef KLD_MODULE
kbd_delete_driver(&kbdmux_kbd_driver);
+#endif
}
error = 0;
break;