target-i386: introduce kvm_put_one_msr

Avoid further code duplication in the next patch.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2016-09-22 14:50:00 +02:00
parent a008535b9f
commit 73e1b8f2f9

View File

@ -1532,6 +1532,14 @@ static void kvm_msr_entry_add(X86CPU *cpu, uint32_t index, uint64_t value)
msrs->nmsrs++; msrs->nmsrs++;
} }
static int kvm_put_one_msr(X86CPU *cpu, int index, uint64_t value)
{
kvm_msr_buf_reset(cpu);
kvm_msr_entry_add(cpu, index, value);
return kvm_vcpu_ioctl(CPU(cpu), KVM_SET_MSRS, cpu->kvm_msr_buf);
}
static int kvm_put_tscdeadline_msr(X86CPU *cpu) static int kvm_put_tscdeadline_msr(X86CPU *cpu)
{ {
CPUX86State *env = &cpu->env; CPUX86State *env = &cpu->env;
@ -1541,10 +1549,7 @@ static int kvm_put_tscdeadline_msr(X86CPU *cpu)
return 0; return 0;
} }
kvm_msr_buf_reset(cpu); ret = kvm_put_one_msr(cpu, MSR_IA32_TSCDEADLINE, env->tsc_deadline);
kvm_msr_entry_add(cpu, MSR_IA32_TSCDEADLINE, env->tsc_deadline);
ret = kvm_vcpu_ioctl(CPU(cpu), KVM_SET_MSRS, cpu->kvm_msr_buf);
if (ret < 0) { if (ret < 0) {
return ret; return ret;
} }
@ -1567,11 +1572,8 @@ static int kvm_put_msr_feature_control(X86CPU *cpu)
return 0; return 0;
} }
kvm_msr_buf_reset(cpu); ret = kvm_put_one_msr(cpu, MSR_IA32_FEATURE_CONTROL,
kvm_msr_entry_add(cpu, MSR_IA32_FEATURE_CONTROL, cpu->env.msr_ia32_feature_control);
cpu->env.msr_ia32_feature_control);
ret = kvm_vcpu_ioctl(CPU(cpu), KVM_SET_MSRS, cpu->kvm_msr_buf);
if (ret < 0) { if (ret < 0) {
return ret; return ret;
} }