From c936a02360c7a18c49d2da5e8b8e38b6b666ead6 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Wed, 15 Aug 2012 23:17:47 +0200 Subject: [PATCH] Move MSI initialization before IO-APIC to fix missing init. Initializing the IO-APIC will initialize the PCI module, which does read the MSI config of the devices only when MSIs are available. Since we initialized them only after that, that condition wasn't met. Later, due to the uninitialized arch info, MSIs were still marked as available (0xcc = 204 MSIs). Due to the also uninitialized configured count, they were always deemed busy however, in effect just breaking MSI support whereever IO-APICs were available. --- src/system/kernel/arch/x86/arch_int.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/system/kernel/arch/x86/arch_int.cpp b/src/system/kernel/arch/x86/arch_int.cpp index 123f575bb3..c83b6ae702 100644 --- a/src/system/kernel/arch/x86/arch_int.cpp +++ b/src/system/kernel/arch/x86/arch_int.cpp @@ -893,8 +893,8 @@ arch_int_init_post_vm(struct kernel_args *args) status_t arch_int_init_io(kernel_args* args) { - ioapic_init(args); msi_init(); + ioapic_init(args); return B_OK; }