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 |