Revision fc87e185 hw/ppc.c

b/hw/ppc.c
28 28
#include "nvram.h"
29 29
#include "qemu-log.h"
30 30
#include "loader.h"
31
#include "kvm.h"
32
#include "kvm_ppc.h"
31 33

  
32 34
//#define PPC_DEBUG_IRQ
33 35
//#define PPC_DEBUG_TB
......
50 52

  
51 53
static void ppc_set_irq (CPUState *env, int n_IRQ, int level)
52 54
{
55
    unsigned int old_pending = env->pending_interrupts;
56

  
53 57
    if (level) {
54 58
        env->pending_interrupts |= 1 << n_IRQ;
55 59
        cpu_interrupt(env, CPU_INTERRUPT_HARD);
......
58 62
        if (env->pending_interrupts == 0)
59 63
            cpu_reset_interrupt(env, CPU_INTERRUPT_HARD);
60 64
    }
65

  
66
    if (old_pending != env->pending_interrupts) {
67
#ifdef CONFIG_KVM
68
        kvmppc_set_interrupt(env, n_IRQ, level);
69
#endif
70
    }
71

  
61 72
    LOG_IRQ("%s: %p n_IRQ %d level %d => pending %08" PRIx32
62 73
                "req %08x\n", __func__, env, n_IRQ, level,
63 74
                env->pending_interrupts, env->interrupt_request);

Also available in: Unified diff