diff --git a/arch/x86/kvm/i8259.c b/arch/x86/kvm/i8259.c
index 2520922282d5d0a030f0a36e40bfbeccbcd85035..bf94a45f4f8685961dd5a4380eb9541e826f7cc9 100644
--- a/arch/x86/kvm/i8259.c
+++ b/arch/x86/kvm/i8259.c
@@ -72,8 +72,10 @@ static void pic_clear_isr(struct kvm_kpic_state *s, int irq)
 void kvm_pic_clear_isr_ack(struct kvm *kvm)
 {
 	struct kvm_pic *s = pic_irqchip(kvm);
+	pic_lock(s);
 	s->pics[0].isr_ack = 0xff;
 	s->pics[1].isr_ack = 0xff;
+	pic_unlock(s);
 }
 
 /*