X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=translate-common.c;h=40fe5a19bb3c2ec14f0f2ac58e78db95cbc89aea;hb=d1c136885ba5b302f9781b8927a8ea2ee38cccd2;hp=d504dd0d33631aa133f7f2b060b23d54c5a534d3;hpb=28f997a82cb509bf4775d4006b368e1bde8b7bdd;p=mirror_qemu.git diff --git a/translate-common.c b/translate-common.c index d504dd0d33..40fe5a19bb 100644 --- a/translate-common.c +++ b/translate-common.c @@ -43,14 +43,11 @@ static void tcg_handle_interrupt(CPUState *cpu, int mask) if (!qemu_cpu_is_self(cpu)) { qemu_cpu_kick(cpu); } else { - if (use_icount) { - cpu->icount_decr.u16.high = 0xffff; - if (!cpu->can_do_io - && (mask & ~old_mask) != 0) { - cpu_abort(cpu, "Raised interrupt while not in I/O function"); - } - } else { - cpu->tcg_exit_req = 1; + cpu->icount_decr.u16.high = -1; + if (use_icount && + !cpu->can_do_io + && (mask & ~old_mask) != 0) { + cpu_abort(cpu, "Raised interrupt while not in I/O function"); } } }