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 | 369 | #endif |
370 | 370 | |
371 | 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 | 376 | next_tb = 0; /* force lookup of first TB */ | ... | ... |
kvm-all.c
... | ... | @@ -298,6 +298,11 @@ int kvm_cpu_exec(CPUState *env) |
298 | 298 | } |
299 | 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 | 306 | return ret; |
302 | 307 | } |
303 | 308 | ... | ... |