diff options
author | Andrew Thompson <thompsa@FreeBSD.org> | 2009-02-13 23:36:08 +0000 |
---|---|---|
committer | Andrew Thompson <thompsa@FreeBSD.org> | 2009-02-13 23:36:08 +0000 |
commit | fd66bfec7fd12ca0b9930ede8607c460ca77bf5a (patch) | |
tree | 3b0332003e3cfc94f9112805c20e7c27d89cfc39 /sys/dev/kbdmux | |
parent | 882284ccd1b02f9d06476898bc3763a0ede29831 (diff) | |
download | src-fd66bfec7fd12ca0b9930ede8607c460ca77bf5a.tar.gz src-fd66bfec7fd12ca0b9930ede8607c460ca77bf5a.zip |
Since r188030 the error value for attach is returned, this means if kbdmux
fails to attach (possibly due to disable hints) then we get called back for
unload. Correctly handle the case where the keyboard isnt found rather than
calling panic.
Notes
Notes:
svn path=/head/; revision=188603
Diffstat (limited to 'sys/dev/kbdmux')
-rw-r--r-- | sys/dev/kbdmux/kbdmux.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/sys/dev/kbdmux/kbdmux.c b/sys/dev/kbdmux/kbdmux.c index 7a47683bb371..07b592f12269 100644 --- a/sys/dev/kbdmux/kbdmux.c +++ b/sys/dev/kbdmux/kbdmux.c @@ -1346,15 +1346,14 @@ kbdmux_modevent(module_t mod, int type, void *data) panic("kbd_get_switch(" KEYBOARD_NAME ") == NULL"); kbd = kbd_get_keyboard(kbd_find_keyboard(KEYBOARD_NAME, 0)); - if (kbd == NULL) - panic("kbd_get_keyboard(kbd_find_keyboard(" KEYBOARD_NAME ", 0)) == NULL"); - - (*sw->disable)(kbd); + if (kbd != NULL) { + (*sw->disable)(kbd); #ifdef KBD_INSTALL_CDEV - kbd_detach(kbd); + kbd_detach(kbd); #endif - (*sw->term)(kbd); - kbd_delete_driver(&kbdmux_kbd_driver); + (*sw->term)(kbd); + kbd_delete_driver(&kbdmux_kbd_driver); + } error = 0; break; |