[Bug 231291] 12-ALPHA4 does not boot on i386 after r338360
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sat Sep 15 00:16:22 UTC 2018
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=231291
--- Comment #6 from John Baldwin <jhb at FreeBSD.org> ---
So your system doesn't support APIC. I believed I had tested that case, but I
think while working on the dynamic IRQ patches I introduced a regression and
ended up not retesting the final result. This patch fixed a non-APIC boot for
me:
Index: sys/x86/isa/atpic.c
===================================================================
--- atpic.c (revision 338687)
+++ atpic.c (working copy)
@@ -221,14 +221,20 @@ atpic_register_sources(struct pic *pic)
* that APIC ISA routing and allowing the ATPIC source for that IRQ
* to leak through. We used to depend on this feature for routing
* IRQ0 via mixed mode, but now we don't use mixed mode at all.
+ *
+ * To avoid the slave not register sources after the master
+ * registers its sources, register all IRQs when this function is
+ * called on the master.
*/
+ if (ap != &atpics[MASTER])
+ return;
for (i = 0; i < NUM_ISA_IRQS; i++)
if (intr_lookup_source(i) != NULL)
return;
/* Loop through all interrupt sources and add them. */
- for (i = 0, ai = atintrs + ap->at_irqbase; i < 8; i++, ai++) {
- if (ap->at_irqbase + i == ICU_SLAVEID)
+ for (i = 0, ai = atintrs; i < NUM_ISA_IRQS; i++, ai++) {
+ if (i == ICU_SLAVEID)
continue;
intr_register_source(&ai->at_intsrc);
}
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list