X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=translate-common.c;h=40fe5a19bb3c2ec14f0f2ac58e78db95cbc89aea;hb=b8adbc657802482e4da1767bf983ebfdf9bfe9fc;hp=d504dd0d33631aa133f7f2b060b23d54c5a534d3;hpb=8d04fb55dec381bc5105cb47f29d918e579e8cbd;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"); } } }