Commit becfc3904194e76436ad0a60c2dde148e1927e4c
1 parent
57951c27
KVM: simplify kvm_cpu_exec hook
We don't need to use cpu_loop_exit() because we never use the condition codes so everything can be folded into a single case. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5669 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
7 additions
and
10 deletions
cpu-exec.c
@@ -369,16 +369,8 @@ int cpu_exec(CPUState *env1) | @@ -369,16 +369,8 @@ int cpu_exec(CPUState *env1) | ||
369 | #endif | 369 | #endif |
370 | 370 | ||
371 | if (kvm_enabled()) { | 371 | if (kvm_enabled()) { |
372 | - int ret; | ||
373 | - ret = kvm_cpu_exec(env); | ||
374 | - if ((env->interrupt_request & CPU_INTERRUPT_EXIT)) { | ||
375 | - env->interrupt_request &= ~CPU_INTERRUPT_EXIT; | ||
376 | - env->exception_index = EXCP_INTERRUPT; | ||
377 | - cpu_loop_exit(); | ||
378 | - } else if (env->halted) { | ||
379 | - cpu_loop_exit(); | ||
380 | - } else | ||
381 | - longjmp(env->jmp_env, 1); | 372 | + kvm_cpu_exec(env); |
373 | + longjmp(env->jmp_env, 1); | ||
382 | } | 374 | } |
383 | 375 | ||
384 | next_tb = 0; /* force lookup of first TB */ | 376 | next_tb = 0; /* force lookup of first TB */ |
kvm-all.c
@@ -298,6 +298,11 @@ int kvm_cpu_exec(CPUState *env) | @@ -298,6 +298,11 @@ int kvm_cpu_exec(CPUState *env) | ||
298 | } | 298 | } |
299 | } while (ret > 0); | 299 | } while (ret > 0); |
300 | 300 | ||
301 | + if ((env->interrupt_request & CPU_INTERRUPT_EXIT)) { | ||
302 | + env->interrupt_request &= ~CPU_INTERRUPT_EXIT; | ||
303 | + env->exception_index = EXCP_INTERRUPT; | ||
304 | + } | ||
305 | + | ||
301 | return ret; | 306 | return ret; |
302 | } | 307 | } |
303 | 308 |