diff --git a/hypervisor/arch/x86/cpu.c b/hypervisor/arch/x86/cpu.c index 044166c71..0d223e2ba 100644 --- a/hypervisor/arch/x86/cpu.c +++ b/hypervisor/arch/x86/cpu.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -214,6 +215,12 @@ void init_cpu_post(uint16_t pcpu_id) setup_posted_intr_notification(); init_pci_pdev_list(); + if (init_iommu() != 0) { + panic("failed to initialize iommu!"); + } + + ptdev_init(); + /* Start all secondary cores */ startup_paddr = prepare_trampoline(); start_cpus(); diff --git a/hypervisor/arch/x86/init.c b/hypervisor/arch/x86/init.c index 738eabc7e..8dc95ad2a 100644 --- a/hypervisor/arch/x86/init.c +++ b/hypervisor/arch/x86/init.c @@ -47,16 +47,6 @@ static void init_debug_post(uint16_t pcpu_id) profiling_setup(); } -/*TODO: move into pass-thru module */ -static void init_passthru(void) -{ - if (init_iommu() != 0) { - panic("failed to initialize iommu!"); - } - - ptdev_init(); -} - /*TODO: move into guest-vcpu module */ static void enter_guest_mode(uint16_t pcpu_id) { @@ -81,8 +71,6 @@ static void init_primary_cpu_post(void) init_debug_post(BOOT_CPU_ID); - init_passthru(); - enter_guest_mode(BOOT_CPU_ID); }