Revision 97ffbd8d

b/exec.c
1629 1629
    spin_unlock(&interrupt_lock);
1630 1630
}
1631 1631

  
1632
#ifndef CONFIG_USER_ONLY
1632 1633
/* mask must never be zero, except for A20 change call */
1633 1634
void cpu_interrupt(CPUState *env, int mask)
1634 1635
{
......
1637 1638
    old_mask = env->interrupt_request;
1638 1639
    env->interrupt_request |= mask;
1639 1640

  
1640
#ifndef CONFIG_USER_ONLY
1641 1641
    /*
1642 1642
     * If called from iothread context, wake the target cpu in
1643 1643
     * case its halted.
......
1646 1646
        qemu_cpu_kick(env);
1647 1647
        return;
1648 1648
    }
1649
#endif
1650 1649

  
1651 1650
    if (use_icount) {
1652 1651
        env->icount_decr.u16.high = 0xffff;
1653
#ifndef CONFIG_USER_ONLY
1654 1652
        if (!can_do_io(env)
1655 1653
            && (mask & ~old_mask) != 0) {
1656 1654
            cpu_abort(env, "Raised interrupt while not in I/O function");
1657 1655
        }
1658
#endif
1659 1656
    } else {
1660 1657
        cpu_unlink_tb(env);
1661 1658
    }
1662 1659
}
1663 1660

  
1661
#else /* CONFIG_USER_ONLY */
1662

  
1663
void cpu_interrupt(CPUState *env, int mask)
1664
{
1665
    env->interrupt_request |= mask;
1666
    cpu_unlink_tb(env);
1667
}
1668
#endif /* CONFIG_USER_ONLY */
1669

  
1664 1670
void cpu_reset_interrupt(CPUState *env, int mask)
1665 1671
{
1666 1672
    env->interrupt_request &= ~mask;

Also available in: Unified diff