From: Nadav Amit <nadav.amit@xxxxxxxxx> Currently, the INIT deassert is marked as an edge event instead of a level, which is wrong. The deassert is actually not needed, as the arbitration ID should have already been set after boot, and is not affected by further INIT IPIs. Remove the INIT deassert for these reasons. Cc: Sean Christopherson <sean.j.christopherson@xxxxxxxxx> Signed-off-by: Nadav Amit <nadav.amit@xxxxxxxxx> --- x86/cstart.S | 1 - x86/cstart64.S | 1 - 2 files changed, 2 deletions(-) diff --git a/x86/cstart.S b/x86/cstart.S index 143317e..79c5024 100644 --- a/x86/cstart.S +++ b/x86/cstart.S @@ -186,7 +186,6 @@ smp_init: rep/movsb mov $APIC_DEFAULT_PHYS_BASE, %eax movl $(APIC_DEST_ALLBUT | APIC_DEST_PHYSICAL | APIC_DM_INIT | APIC_INT_ASSERT), APIC_ICR(%eax) - movl $(APIC_DEST_ALLBUT | APIC_DEST_PHYSICAL | APIC_DM_INIT), APIC_ICR(%eax) movl $(APIC_DEST_ALLBUT | APIC_DEST_PHYSICAL | APIC_DM_STARTUP), APIC_ICR(%eax) call fwcfg_get_nb_cpus 1: pause diff --git a/x86/cstart64.S b/x86/cstart64.S index 21db10f..e38767b 100644 --- a/x86/cstart64.S +++ b/x86/cstart64.S @@ -285,7 +285,6 @@ smp_init: rep/movsb mov $APIC_DEFAULT_PHYS_BASE, %eax movl $(APIC_DEST_ALLBUT | APIC_DEST_PHYSICAL | APIC_DM_INIT | APIC_INT_ASSERT), APIC_ICR(%rax) - movl $(APIC_DEST_ALLBUT | APIC_DEST_PHYSICAL | APIC_DM_INIT), APIC_ICR(%rax) movl $(APIC_DEST_ALLBUT | APIC_DEST_PHYSICAL | APIC_DM_STARTUP), APIC_ICR(%rax) call fwcfg_get_nb_cpus 1: pause -- 2.17.1