Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

ioapic: For limited I/O APIC mixed mode, delivery mode should always …

…be fixed.
  • Loading branch information...
commit ddb99c829fb197d9678a468a7c75c649b33c058f 1 parent 6b809ec
Sepherosa Ziehau authored
Showing with 22 additions and 2 deletions.
  1. +11 −1 sys/platform/pc32/apic/mpapic.c
  2. +11 −1 sys/platform/pc64/apic/mpapic.c
View
12 sys/platform/pc32/apic/mpapic.c
@@ -1437,7 +1437,17 @@ ioapic_pin_prog(void *addr, int pin, int vec,
select = IOAPIC_REDTBL0 + (2 * pin);
flags = ioapic_read(addr, select) & IOART_RESV;
- flags |= IOART_INTMSET | IOART_DESTPHY | del_mode;
+ flags |= IOART_INTMSET | IOART_DESTPHY;
+#ifdef foo
+ flags |= del_mode;
+#else
+ /*
+ * We only support limited I/O APIC mixed mode,
+ * so even for ExtINT, we still use "fixed"
+ * delivery mode.
+ */
+ flags |= IOART_DELFIXED;
+#endif
if (del_mode == IOART_DELEXINT) {
KKASSERT(trig == INTR_TRIGGER_CONFORM &&
View
12 sys/platform/pc64/apic/mpapic.c
@@ -1499,7 +1499,17 @@ ioapic_pin_prog(void *addr, int pin, int vec,
select = IOAPIC_REDTBL0 + (2 * pin);
flags = ioapic_read(addr, select) & IOART_RESV;
- flags |= IOART_INTMSET | IOART_DESTPHY | del_mode;
+ flags |= IOART_INTMSET | IOART_DESTPHY;
+#ifdef foo
+ flags |= del_mode;
+#else
+ /*
+ * We only support limited I/O APIC mixed mode,
+ * so even for ExtINT, we still use "fixed"
+ * delivery mode.
+ */
+ flags |= IOART_DELFIXED;
+#endif
if (del_mode == IOART_DELEXINT) {
KKASSERT(trig == INTR_TRIGGER_CONFORM &&
Please sign in to comment.
Something went wrong with that request. Please try again.