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

Commit 62b9abaa authored by Joerg Roedel's avatar Joerg Roedel Committed by Avi Kivity
Browse files

KVM: SVM: support writing 0 to K8 performance counter control registers



This lets SVM ignore writes of the value 0 to the performance counter control
registers.  Thus enabling them will still fail in the guest, but a write of 0
which keeps them disabled is accepted.  This is required to boot Windows
Vista 64bit.

[avi: avoid fall-thru in switch statement]

Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
Signed-off-by: default avatarMarkus Rechberger <markus.rechberger@amd.com>
Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
parent 722f6ecb
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -1155,7 +1155,20 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, unsigned ecx, u64 data)
	case MSR_IA32_SYSENTER_ESP:
		svm->vmcb->save.sysenter_esp = data;
		break;
	case MSR_K7_EVNTSEL0:
	case MSR_K7_EVNTSEL1:
	case MSR_K7_EVNTSEL2:
	case MSR_K7_EVNTSEL3:
		/*
		 * only support writing 0 to the performance counters for now
		 * to make Windows happy. Should be replaced by a real
		 * performance counter emulation later.
		 */
		if (data != 0)
			goto unhandled;
		break;
	default:
	unhandled:
		return kvm_set_msr_common(vcpu, ecx, data);
	}
	return 0;