diff --git a/hw/kvmvapic.c b/hw/kvmvapic.c
index dc111ee..a97d532 100644
--- a/hw/kvmvapic.c
+++ b/hw/kvmvapic.c
@@ -612,6 +612,9 @@ static void vapic_write(void *opaque, hwaddr addr, uint64_t data,
     hwaddr rom_paddr;
     VAPICROMState *s = opaque;
 
+    if (!kvm_irqchip_in_kernel()) {
+        return;
+    }
     cpu_synchronize_state(env);
 
     /*
@@ -665,9 +668,7 @@ static void vapic_write(void *opaque, hwaddr addr, uint64_t data,
         break;
     default:
     case 4:
-        if (!kvm_irqchip_in_kernel()) {
-            apic_poll_irq(env->apic_state);
-        }
+        apic_poll_irq(env->apic_state);
         break;
     }
 }
