aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/hyperv
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/hyperv
parent1fa29c42bb742a5f31926b7a4eb61b6164734d00 (diff)
downloadsrc-5a7a578be9e92e1ceb16fced892a9e4f2eba1712.tar.gz
src-5a7a578be9e92e1ceb16fced892a9e4f2eba1712.zip
kbd drivers: don't double register keyboard drivers
Keyboard drivers are generally registered via linker set. In these cases, they're also available as kmods which use KPI for registering/unregistering keyboard drivers outside of the linker set. For built-in modules, we still fire off MOD_LOAD and maybe even MOD_UNLOAD if an error occurs, leading to registration via linker set and at MOD_LOAD time. This is a minor optimization at best, but it keeps the internal kbd driver tidy as a future change will merge the linker set driver list into its internal keyboard_drivers list via SYSINIT and simplify driver lookup by removing the need to consult the linker set.
Notes
Notes: svn path=/head/; revision=355806
Diffstat (limited to 'sys/dev/hyperv')
-rw-r--r--sys/dev/hyperv/input/hv_kbd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/hyperv/input/hv_kbd.c b/sys/dev/hyperv/input/hv_kbd.c
index 3be18da0efef..af3288139127 100644
--- a/sys/dev/hyperv/input/hv_kbd.c
+++ b/sys/dev/hyperv/input/hv_kbd.c
@@ -490,6 +490,8 @@ hv_kbd_intr(hv_kbd_sc *sc)
int
hvkbd_driver_load(module_t mod, int what, void *arg)
{
+
+#ifdef KLD_MODULE
switch (what) {
case MOD_LOAD:
kbd_add_driver(&hvkbd_kbd_driver);
@@ -498,6 +500,7 @@ hvkbd_driver_load(module_t mod, int what, void *arg)
kbd_delete_driver(&hvkbd_kbd_driver);
break;
}
+#endif
return (0);
}