kern/178061: [ukbd] panic at reboot when hitting scroll-lock; race condition with interrupt handler in lower half of kernel
yaneurabeya at gmail.com
Mon Apr 22 20:10:00 UTC 2013
>Synopsis: [ukbd] panic at reboot when hitting scroll-lock; race condition with interrupt handler in lower half of kernel
>Arrival-Date: Mon Apr 22 20:10:00 UTC 2013
>Originator: Garrett Cooper
FreeBSD 10.0-CURRENT #0: Sat Apr 13 22:16:27 UTC 2013
I was installing FreeBSD 10-CURRENT  on a machine with IPMI and happened to hit the scroll lock when the syncer was running at reboot over IPMI and it generated an interrupt which caused the ukbd(4) driver to panic. Unfortunately I didn't capture any additional details, but it should be relatively easy to reproduce.
Hit scroll lock at reboot. This may require several tries in order to hit the magic race condition
The solution would be for ukbd to properly mask interrupts when it shouldn't be servicing them at reboot/shutdown. This is tricky though because the kernel could panic at reboot and hence the driver should be functional for service via ddb in "recoverable"/"debuggable" scenarios, BUT it should be easy to call a resume hook for the driver or unmask the interrupts again in ukbd.
More information about the freebsd-bugs