diff -r 7bceee1874a8 -r 5919a10e6cdd src/arch/x86/interrupts.cc --- a/src/arch/x86/interrupts.cc Fri Mar 08 11:24:40 2013 -0600 +++ b/src/arch/x86/interrupts.cc Fri Mar 08 11:29:55 2013 -0600 @@ -597,9 +597,10 @@ curTick() + (newCount + 1) * clockPeriod() - offset, true); } else { - reschedule(apicTimerEvent, - curTick() + newCount * - clockPeriod(), true); + if (newCount) + reschedule(apicTimerEvent, + curTick() + newCount * + clockPeriod(), true); } } break; diff -r 7bceee1874a8 -r 5919a10e6cdd src/dev/x86/i8042.cc --- a/src/dev/x86/i8042.cc Fri Mar 08 11:24:40 2013 -0600 +++ b/src/dev/x86/i8042.cc Fri Mar 08 11:29:55 2013 -0600 @@ -411,10 +411,12 @@ case ReadOutputPort: panic("i8042 \"Read output port\" command not implemented.\n"); case WriteOutputPort: - panic("i8042 \"Write output port\" command not implemented.\n"); + warn("i8042 \"Write output port\" command not implemented.\n"); + lastCommand = WriteOutputPort; case WriteKeyboardOutputBuff: - panic("i8042 \"Write keyboard output buffer\" " + warn("i8042 \"Write keyboard output buffer\" " "command not implemented.\n"); + lastCommand = WriteKeyboardOutputBuff; case WriteMouseOutputBuff: DPRINTF(I8042, "Got command to write to mouse output buffer.\n"); lastCommand = WriteMouseOutputBuff; @@ -432,7 +434,7 @@ case SystemReset: panic("i8042 \"System reset\" command not implemented.\n"); default: - panic("Write to unknown i8042 " + warn("Write to unknown i8042 " "(keyboard controller) command port.\n"); } } else {