genode/repos/base-sel4/patches/ioapic.patch

13 lines
512 B
Diff

--- src/kernel/sel4/src/plat/pc99/machine/ioapic.c
+++ src/kernel/sel4/src/plat/pc99/machine/ioapic.c
@@ -127,6 +127,9 @@ void ioapic_mask(bool_t mask, uint32_t ioapic, uint32_t pin)
return;
}
if (mask) {
+ /* only mask level triggered interrupts */
+ if (!(ioredtbl_state[index] & IOREDTBL_LOW_TRIGGER_MODE_LEVEL))
+ return;
ioredtbl_state[index] |= IOREDTBL_LOW_INTERRUPT_MASK;
} else {
ioredtbl_state[index] &= ~IOREDTBL_LOW_INTERRUPT_MASK;