diff options
author | Kyle Evans <kevans@FreeBSD.org> | 2019-12-16 16:41:24 +0000 |
---|---|---|
committer | Kyle Evans <kevans@FreeBSD.org> | 2019-12-16 16:41:24 +0000 |
commit | 5a7a578be9e92e1ceb16fced892a9e4f2eba1712 (patch) | |
tree | 909914ece201178363199d1ebc8f88d2c8142afa /sys/dev/hyperv | |
parent | 1fa29c42bb742a5f31926b7a4eb61b6164734d00 (diff) | |
download | src-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.c | 3 |
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); } |