diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
index 658777cf38512872b4e5d049a8618e4bbd1b869b..ac2ee87deb55a8e77173844bb3ef0ec26a1f956e 100644
--- a/arch/x86/kernel/smp.c
+++ b/arch/x86/kernel/smp.c
@@ -259,8 +259,10 @@ static inline void __smp_reschedule_interrupt(void)
 
 __visible void smp_reschedule_interrupt(struct pt_regs *regs)
 {
+	irq_enter();
 	ack_APIC_irq();
 	__smp_reschedule_interrupt();
+	irq_exit();
 	/*
 	 * KVM uses this interrupt to force a cpu out of guest mode
 	 */