kvm/x86: Hyper-V HV_X64_MSR_RESET msr
HV_X64_MSR_RESET msr is used by Hyper-V based Windows guest to reset guest VM by hypervisor. Necessary to support loading of winhv.sys in guest, which in turn is required to support Windows VMBus. Signed-off-by: Andrey Smetanin <asmetanin@virtuozzo.com> Reviewed-by: Roman Kagan <rkagan@virtuozzo.com> Signed-off-by: Denis V. Lunev <den@openvz.org> CC: Paolo Bonzini <pbonzini@redhat.com> CC: Gleb Natapov <gleb@kernel.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:

committed by
Paolo Bonzini

parent
e9ea5069d9
commit
e516cebb4f
@@ -41,6 +41,7 @@ static bool kvm_hv_msr_partition_wide(u32 msr)
|
||||
case HV_X64_MSR_TIME_REF_COUNT:
|
||||
case HV_X64_MSR_CRASH_CTL:
|
||||
case HV_X64_MSR_CRASH_P0 ... HV_X64_MSR_CRASH_P4:
|
||||
case HV_X64_MSR_RESET:
|
||||
r = true;
|
||||
break;
|
||||
}
|
||||
@@ -163,6 +164,12 @@ static int kvm_hv_set_msr_pw(struct kvm_vcpu *vcpu, u32 msr, u64 data,
|
||||
data);
|
||||
case HV_X64_MSR_CRASH_CTL:
|
||||
return kvm_hv_msr_set_crash_ctl(vcpu, data, host);
|
||||
case HV_X64_MSR_RESET:
|
||||
if (data == 1) {
|
||||
vcpu_debug(vcpu, "hyper-v reset requested\n");
|
||||
kvm_make_request(KVM_REQ_HV_RESET, vcpu);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
vcpu_unimpl(vcpu, "Hyper-V uhandled wrmsr: 0x%x data 0x%llx\n",
|
||||
msr, data);
|
||||
@@ -241,6 +248,9 @@ static int kvm_hv_get_msr_pw(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
|
||||
pdata);
|
||||
case HV_X64_MSR_CRASH_CTL:
|
||||
return kvm_hv_msr_get_crash_ctl(vcpu, pdata);
|
||||
case HV_X64_MSR_RESET:
|
||||
data = 0;
|
||||
break;
|
||||
default:
|
||||
vcpu_unimpl(vcpu, "Hyper-V unhandled rdmsr: 0x%x\n", msr);
|
||||
return 1;
|
||||
|
Reference in New Issue
Block a user