Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b3af1e88 authored by Vadim Rozenfeld's avatar Vadim Rozenfeld Committed by Paolo Bonzini
Browse files

KVM: x86: mark hyper-v vapic assist page as dirty

parent b94b64c9
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1869,19 +1869,21 @@ static int set_msr_hyperv(struct kvm_vcpu *vcpu, u32 msr, u64 data)
{
	switch (msr) {
	case HV_X64_MSR_APIC_ASSIST_PAGE: {
		u64 gfn;
		unsigned long addr;

		if (!(data & HV_X64_MSR_APIC_ASSIST_PAGE_ENABLE)) {
			vcpu->arch.hv_vapic = data;
			break;
		}
		addr = gfn_to_hva(vcpu->kvm, data >>
				  HV_X64_MSR_APIC_ASSIST_PAGE_ADDRESS_SHIFT);
		gfn = data >> HV_X64_MSR_APIC_ASSIST_PAGE_ADDRESS_SHIFT;
		addr = gfn_to_hva(vcpu->kvm, gfn);
		if (kvm_is_error_hva(addr))
			return 1;
		if (__clear_user((void __user *)addr, PAGE_SIZE))
			return 1;
		vcpu->arch.hv_vapic = data;
		mark_page_dirty(vcpu->kvm, gfn);
		break;
	}
	case HV_X64_MSR_EOI: