aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorJoerg Roedel <joerg.roedel@amd.com>2010-03-01 09:34:34 -0500
committerAvi Kivity <avi@redhat.com>2010-05-17 05:15:07 -0400
commitd24778265ac9b2602889a5e99c6e7ba777a236df (patch)
tree721f4f0bdf5a8e1a1d6872b1743c916e8aab946e /arch/x86
parent0fc5c3a54d68d0e6c2f3b346dcc924ba928c4d0e (diff)
KVM: SVM: Return correct values in nested_svm_exit_handled_msr
The nested_svm_exit_handled_msr() returned an bool which is a bug. I worked by accident because the exected integer return values match with the true and false values. This patch changes the return value to int and let the function return the correct values. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kvm/svm.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 6882be5b9267..07437ca12787 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -1552,16 +1552,16 @@ static void nested_svm_unmap(struct page *page)
1552 kvm_release_page_dirty(page); 1552 kvm_release_page_dirty(page);
1553} 1553}
1554 1554
1555static bool nested_svm_exit_handled_msr(struct vcpu_svm *svm) 1555static int nested_svm_exit_handled_msr(struct vcpu_svm *svm)
1556{ 1556{
1557 u32 param = svm->vmcb->control.exit_info_1 & 1; 1557 u32 param = svm->vmcb->control.exit_info_1 & 1;
1558 u32 msr = svm->vcpu.arch.regs[VCPU_REGS_RCX]; 1558 u32 msr = svm->vcpu.arch.regs[VCPU_REGS_RCX];
1559 bool ret = false;
1560 u32 t0, t1; 1559 u32 t0, t1;
1560 int ret;
1561 u8 val; 1561 u8 val;
1562 1562
1563 if (!(svm->nested.intercept & (1ULL << INTERCEPT_MSR_PROT))) 1563 if (!(svm->nested.intercept & (1ULL << INTERCEPT_MSR_PROT)))
1564 return false; 1564 return NESTED_EXIT_HOST;
1565 1565
1566 switch (msr) { 1566 switch (msr) {
1567 case 0 ... 0x1fff: 1567 case 0 ... 0x1fff:
@@ -1579,12 +1579,12 @@ static bool nested_svm_exit_handled_msr(struct vcpu_svm *svm)
1579 t0 %= 8; 1579 t0 %= 8;
1580 break; 1580 break;
1581 default: 1581 default:
1582 ret = true; 1582 ret = NESTED_EXIT_DONE;
1583 goto out; 1583 goto out;
1584 } 1584 }
1585 1585
1586 if (!kvm_read_guest(svm->vcpu.kvm, svm->nested.vmcb_msrpm + t1, &val, 1)) 1586 if (!kvm_read_guest(svm->vcpu.kvm, svm->nested.vmcb_msrpm + t1, &val, 1))
1587 ret = val & ((1 << param) << t0); 1587 ret = val & ((1 << param) << t0) ? NESTED_EXIT_DONE : NESTED_EXIT_HOST;
1588 1588
1589out: 1589out:
1590 return ret; 1590 return ret;