Revision 0af691d7

b/kvm-all.c
593 593
    int ret;
594 594
    int i;
595 595

  
596
    if (smp_cpus > 1) {
597
        fprintf(stderr, "No SMP KVM support, use '-smp 1'\n");
598
        return -EINVAL;
599
    }
600

  
601 596
    s = qemu_mallocz(sizeof(KVMState));
602 597

  
603 598
#ifdef KVM_CAP_SET_GUEST_DEBUG
......
840 835
        }
841 836
#endif
842 837

  
838
        if (kvm_arch_process_irqchip_events(env)) {
839
            ret = 0;
840
            break;
841
        }
842

  
843 843
        if (env->kvm_vcpu_dirty) {
844 844
            kvm_arch_put_registers(env, KVM_PUT_RUNTIME_STATE);
845 845
            env->kvm_vcpu_dirty = 0;
b/kvm.h
90 90

  
91 91
int kvm_arch_pre_run(CPUState *env, struct kvm_run *run);
92 92

  
93
int kvm_arch_process_irqchip_events(CPUState *env);
94

  
93 95
int kvm_arch_get_registers(CPUState *env);
94 96

  
95 97
/* state subset only touched by the VCPU itself during runtime */
b/target-i386/kvm.c
1073 1073
    return 0;
1074 1074
}
1075 1075

  
1076
int kvm_arch_process_irqchip_events(CPUState *env)
1077
{
1078
    if (env->interrupt_request & CPU_INTERRUPT_INIT) {
1079
        kvm_cpu_synchronize_state(env);
1080
        do_cpu_init(env);
1081
        env->exception_index = EXCP_HALTED;
1082
    }
1083

  
1084
    if (env->interrupt_request & CPU_INTERRUPT_SIPI) {
1085
        kvm_cpu_synchronize_state(env);
1086
        do_cpu_sipi(env);
1087
    }
1088

  
1089
    return env->halted;
1090
}
1091

  
1076 1092
static int kvm_handle_halt(CPUState *env)
1077 1093
{
1078 1094
    if (!((env->interrupt_request & CPU_INTERRUPT_HARD) &&
b/target-ppc/kvm.c
224 224
    return 0;
225 225
}
226 226

  
227
int kvm_arch_process_irqchip_events(CPUState *env)
228
{
229
    return 0;
230
}
231

  
227 232
static int kvmppc_handle_halt(CPUState *env)
228 233
{
229 234
    if (!(env->interrupt_request & CPU_INTERRUPT_HARD) && (msr_ee)) {
b/target-s390x/kvm.c
175 175
    return 0;
176 176
}
177 177

  
178
int kvm_arch_process_irqchip_events(CPUState *env)
179
{
180
    return 0;
181
}
182

  
178 183
static void kvm_s390_interrupt_internal(CPUState *env, int type, uint32_t parm,
179 184
                                        uint64_t parm64, int vm)
180 185
{

Also available in: Unified diff