Revision 94ad5b00 hw/sun4m.c

b/hw/sun4m.c
253 253
    }
254 254
}
255 255

  
256
static void cpu_kick_irq(CPUState *env)
257
{
258
    env->halted = 0;
259
    cpu_check_irqs(env);
260
    qemu_cpu_kick(env);
261
}
262

  
256 263
static void cpu_set_irq(void *opaque, int irq, int level)
257 264
{
258 265
    CPUState *env = opaque;
259 266

  
260 267
    if (level) {
261 268
        trace_sun4m_cpu_set_irq_raise(irq);
262
        env->halted = 0;
263 269
        env->pil_in |= 1 << irq;
264
        cpu_check_irqs(env);
270
        cpu_kick_irq(env);
265 271
    } else {
266 272
        trace_sun4m_cpu_set_irq_lower(irq);
267 273
        env->pil_in &= ~(1 << irq);

Also available in: Unified diff