diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 77d57ff3d74e..f0493e7dcf0c 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2535,6 +2535,13 @@ again:
 
 	local_irq_disable();
 
+	if (need_resched()) {
+		local_irq_enable();
+		preempt_enable();
+		r = 1;
+		goto out;
+	}
+
 	if (signal_pending(current)) {
 		local_irq_enable();
 		preempt_enable();