kvmppc_radix_check_need_tlb_flush(vc->kvm, pcpu, NULL);
        }
 
-       /*
-        * Interrupts will be enabled once we get into the guest,
-        * so tell lockdep that we're about to enable interrupts.
-        */
-       trace_hardirqs_on();
-
        guest_enter_irqoff();
 
        srcu_idx = srcu_read_lock(&vc->kvm->srcu);
 
        this_cpu_disable_ftrace();
 
+       /*
+        * Interrupts will be enabled once we get into the guest,
+        * so tell lockdep that we're about to enable interrupts.
+        */
+       trace_hardirqs_on();
+
        trap = __kvmppc_vcore_entry();
 
+       trace_hardirqs_off();
+
        this_cpu_enable_ftrace();
 
        srcu_read_unlock(&vc->kvm->srcu, srcu_idx);
 
-       trace_hardirqs_off();
        set_irq_happened(trap);
 
        spin_lock(&vc->lock);