summaryrefslogtreecommitdiff
path: root/cpu-exec.c
diff options
context:
space:
mode:
authorIgor Mitsyanko <i.mitsyanko@samsung.com>2012-12-05 23:03:55 +0400
committerKitae Kim <kt920.kim@samsung.com>2012-12-20 16:37:52 +0900
commitbbcf0b82fb593447ecd6bed8f12473d498f7716c (patch)
tree0b6e1cbcdee910a4f70dd400ace9915f4a1067d9 /cpu-exec.c
parent1d95b989f24543d10060e94d43718f72b6416ba9 (diff)
downloadqemu-bbcf0b82fb593447ecd6bed8f12473d498f7716c.tar.gz
qemu-bbcf0b82fb593447ecd6bed8f12473d498f7716c.tar.bz2
qemu-bbcf0b82fb593447ecd6bed8f12473d498f7716c.zip
cpu-exec: do not handle interrupts if HAX is working
When emulator works with HAX accelerator, all hardirq events should be processed by HAX, not in cpu_exec loop. It is exactly how it works most of the time even without this fix, but in some cases, for example, if we're using YaGL openGL passthrough device, interrupt could be handled incide cpu_exec loop, which will cause errors in emulation. Use explicit check for HAX enabled to decide if we want to handle interrupts. Note that it doesn't change behaviour for usual emulator workflow because usually interrupt_request is always 0 at this point. Signed-off-by: Igor Mitsyanko <i.mitsyanko@samsung.com>
Diffstat (limited to 'cpu-exec.c')
-rw-r--r--cpu-exec.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/cpu-exec.c b/cpu-exec.c
index 0a0858279d..9500e91c04 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -288,7 +288,7 @@ int cpu_exec(CPUArchState *env)
next_tb = 0; /* force lookup of first TB */
for(;;) {
- interrupt_request = env->interrupt_request;
+ interrupt_request = need_handle_intr_request(env);
if (unlikely(interrupt_request)) {
if (unlikely(env->singlestep_enabled & SSTEP_NOIRQ)) {
/* Mask out external interrupts for this step. */