Fixed the last commit: after we have acknowledged the interrupt, the
interrupt service register bit is never set, anyway... Thanks to Korli for reporting. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12801 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -384,13 +384,13 @@ i386_handle_trap(struct iframe frame)
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
if (frame.vector >= ARCH_INTERRUPT_BASE) {
|
if (frame.vector >= ARCH_INTERRUPT_BASE) {
|
||||||
pic_end_of_interrupt(frame.vector);
|
|
||||||
|
|
||||||
// This is a workaround for spurious assertions of interrupts 7/15
|
// This is a workaround for spurious assertions of interrupts 7/15
|
||||||
// which seems to be an often seen problem on the PC platform
|
// which seems to be an often seen problem on the PC platform
|
||||||
if (pic_is_spurious_interrupt(frame.vector - ARCH_INTERRUPT_BASE))
|
if (pic_is_spurious_interrupt(frame.vector - ARCH_INTERRUPT_BASE))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
pic_end_of_interrupt(frame.vector);
|
||||||
|
|
||||||
ret = int_io_interrupt_handler(frame.vector - ARCH_INTERRUPT_BASE);
|
ret = int_io_interrupt_handler(frame.vector - ARCH_INTERRUPT_BASE);
|
||||||
} else {
|
} else {
|
||||||
panic("i386_handle_trap: unhandled trap 0x%x (%s) at ip 0x%x, thread 0x%x!\n",
|
panic("i386_handle_trap: unhandled trap 0x%x (%s) at ip 0x%x, thread 0x%x!\n",
|
||||||
|
|||||||
Reference in New Issue
Block a user