KVM: SVM: Remove remaining occurences of rdtscll

This patch replaces them with native_read_tsc() which can
also be used in expressions and saves a variable on the
stack in this case.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
Joerg Roedel 2009-09-16 15:24:19 +02:00 committed by Avi Kivity
parent 33527ad7e1
commit e935d48e1b

View File

@ -763,14 +763,13 @@ static void svm_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
int i; int i;
if (unlikely(cpu != vcpu->cpu)) { if (unlikely(cpu != vcpu->cpu)) {
u64 tsc_this, delta; u64 delta;
/* /*
* Make sure that the guest sees a monotonically * Make sure that the guest sees a monotonically
* increasing TSC. * increasing TSC.
*/ */
rdtscll(tsc_this); delta = vcpu->arch.host_tsc - native_read_tsc();
delta = vcpu->arch.host_tsc - tsc_this;
svm->vmcb->control.tsc_offset += delta; svm->vmcb->control.tsc_offset += delta;
if (is_nested(svm)) if (is_nested(svm))
svm->nested.hsave->control.tsc_offset += delta; svm->nested.hsave->control.tsc_offset += delta;
@ -792,7 +791,7 @@ static void svm_vcpu_put(struct kvm_vcpu *vcpu)
for (i = 0; i < NR_HOST_SAVE_USER_MSRS; i++) for (i = 0; i < NR_HOST_SAVE_USER_MSRS; i++)
wrmsrl(host_save_user_msrs[i], svm->host_user_msrs[i]); wrmsrl(host_save_user_msrs[i], svm->host_user_msrs[i]);
rdtscll(vcpu->arch.host_tsc); vcpu->arch.host_tsc = native_read_tsc();
} }
static unsigned long svm_get_rflags(struct kvm_vcpu *vcpu) static unsigned long svm_get_rflags(struct kvm_vcpu *vcpu)