summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/svm.c
diff options
context:
space:
mode:
authorJoerg Roedel2009-08-07 11:49:37 +0200
committerAvi Kivity2009-09-10 07:33:25 +0200
commit0295ad7de86a6347316bc7414c1b9c15f56a1333 (patch)
tree4edc72b30fc9c690e7249a92bc2866597bfa49f8 /arch/x86/kvm/svm.c
parentKVM: SVM: do nested vmexit in nested_svm_exit_handled (diff)
downloadkernel-qcow2-linux-0295ad7de86a6347316bc7414c1b9c15f56a1333.tar.gz
kernel-qcow2-linux-0295ad7de86a6347316bc7414c1b9c15f56a1333.tar.xz
kernel-qcow2-linux-0295ad7de86a6347316bc7414c1b9c15f56a1333.zip
KVM: SVM: simplify nested_svm_check_exception
Makes the code of this function more readable by removing on indentation level for the core logic. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/svm.c')
-rw-r--r--arch/x86/kvm/svm.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 3bb6d4b92b34..67fad6641d55 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -1359,18 +1359,15 @@ static int nested_svm_check_permissions(struct vcpu_svm *svm)
static int nested_svm_check_exception(struct vcpu_svm *svm, unsigned nr,
bool has_error_code, u32 error_code)
{
- if (is_nested(svm)) {
- svm->vmcb->control.exit_code = SVM_EXIT_EXCP_BASE + nr;
- svm->vmcb->control.exit_code_hi = 0;
- svm->vmcb->control.exit_info_1 = error_code;
- svm->vmcb->control.exit_info_2 = svm->vcpu.arch.cr2;
- if (nested_svm_exit_handled(svm, false)) {
- nsvm_printk("VMexit -> EXCP 0x%x\n", nr);
- return 1;
- }
- }
+ if (!is_nested(svm))
+ return 0;
- return 0;
+ svm->vmcb->control.exit_code = SVM_EXIT_EXCP_BASE + nr;
+ svm->vmcb->control.exit_code_hi = 0;
+ svm->vmcb->control.exit_info_1 = error_code;
+ svm->vmcb->control.exit_info_2 = svm->vcpu.arch.cr2;
+
+ return nested_svm_exit_handled(svm, false);
}
static inline int nested_svm_intr(struct vcpu_svm *svm)