diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2018-04-03 17:36:12 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2018-06-28 19:05:36 +0200 |
commit | df2518aa587a0157bbfbc635fe47295629d9914a (patch) | |
tree | ebf0ebe6eb17c09f492e0be8017f467a3b0ac438 /target | |
parent | 02f7fd25a446a220905c2e5cb0fc3655d7f63b29 (diff) | |
download | qemu-df2518aa587a0157bbfbc635fe47295629d9914a.zip |
target-i386: Allow interrupt injection after STGI
We need to terminate the translation block after STGI so that pending
interrupts can be injected.
This fixes pending NMI injection for Jailhouse which uses "stgi; clgi"
to open a brief injection window.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Message-Id: <37939b244dda0e9cccf96ce50f2b15df1e48315d.1522769774.git.jan.kiszka@web.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'target')
-rw-r--r-- | target/i386/translate.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/target/i386/translate.c b/target/i386/translate.c index c91849417b..07d185e7b6 100644 --- a/target/i386/translate.c +++ b/target/i386/translate.c @@ -7444,8 +7444,9 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu) break; } gen_update_cc_op(s); - gen_jmp_im(pc_start - s->cs_base); gen_helper_stgi(cpu_env); + gen_jmp_im(s->pc - s->cs_base); + gen_eob(s); break; case 0xdd: /* CLGI */ |