diff options
author | Vipin Sharma <vipinsh@google.com> | 2022-12-12 21:37:17 +0300 |
---|---|---|
committer | Sean Christopherson <seanjc@google.com> | 2023-02-02 00:46:24 +0300 |
commit | c4a46627e5a846e59f0097e3196f142eb6142f4f (patch) | |
tree | 64cbd9ed3916d02f44a1e1941976a0eef6a05ae2 /tools/testing/selftests/kvm/x86_64/hyperv_features.c | |
parent | db9cf24cea69773410f0049bdfa795d7c2bd0ea9 (diff) | |
download | linux-c4a46627e5a846e59f0097e3196f142eb6142f4f.tar.xz |
KVM: selftests: Test Hyper-V extended hypercall enablement
Test Hyper-V extended hypercall, HV_EXT_CALL_QUERY_CAPABILITIES
(0x8001), access denied and invalid parameter cases.
Access is denied if CPUID.0x40000003.EBX BIT(20) is not set.
Invalid parameter if call has fast bit set.
Signed-off-by: Vipin Sharma <vipinsh@google.com>
Link: https://lore.kernel.org/r/20221212183720.4062037-11-vipinsh@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'tools/testing/selftests/kvm/x86_64/hyperv_features.c')
-rw-r--r-- | tools/testing/selftests/kvm/x86_64/hyperv_features.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/tools/testing/selftests/kvm/x86_64/hyperv_features.c b/tools/testing/selftests/kvm/x86_64/hyperv_features.c index 258267df8e2a..c5e3b39edd07 100644 --- a/tools/testing/selftests/kvm/x86_64/hyperv_features.c +++ b/tools/testing/selftests/kvm/x86_64/hyperv_features.c @@ -649,6 +649,15 @@ static void guest_test_hcalls_access(void) hcall->expect = HV_STATUS_SUCCESS; break; case 19: + hcall->control = HV_EXT_CALL_QUERY_CAPABILITIES; + hcall->expect = HV_STATUS_ACCESS_DENIED; + break; + case 20: + vcpu_set_cpuid_feature(vcpu, HV_ENABLE_EXTENDED_HYPERCALLS); + hcall->control = HV_EXT_CALL_QUERY_CAPABILITIES | HV_HYPERCALL_FAST_BIT; + hcall->expect = HV_STATUS_INVALID_PARAMETER; + break; + case 21: kvm_vm_free(vm); return; } |