diff options
author | Sheng Yang <sheng@linux.intel.com> | 2009-12-18 03:48:46 -0500 |
---|---|---|
committer | Marcelo Tosatti <mtosatti@redhat.com> | 2010-03-01 10:35:40 -0500 |
commit | 0e85188049afacdfce9c026144142264981bbabb (patch) | |
tree | 773021a2bd3a799e2814e750ad85ff016f51fccf /arch/x86/kvm/x86.c | |
parent | be43f83dada2cf0e9e01c9a0ba42977c5bd70f9d (diff) |
KVM: Add cpuid_update() callback to kvm_x86_ops
Sometime, we need to adjust some state in order to reflect guest CPUID
setting, e.g. if we don't expose rdtscp to guest, we won't want to enable
it on hardware. cpuid_update() is introduced for this purpose.
Also export kvm_find_cpuid_entry() for later use.
Signed-off-by: Sheng Yang <sheng@linux.intel.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/x86.c')
-rw-r--r-- | arch/x86/kvm/x86.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 4e7bbc49b7e4..e5ac21f992f0 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
@@ -1574,6 +1574,7 @@ static int kvm_vcpu_ioctl_set_cpuid(struct kvm_vcpu *vcpu, | |||
1574 | cpuid_fix_nx_cap(vcpu); | 1574 | cpuid_fix_nx_cap(vcpu); |
1575 | r = 0; | 1575 | r = 0; |
1576 | kvm_apic_set_version(vcpu); | 1576 | kvm_apic_set_version(vcpu); |
1577 | kvm_x86_ops->cpuid_update(vcpu); | ||
1577 | 1578 | ||
1578 | out_free: | 1579 | out_free: |
1579 | vfree(cpuid_entries); | 1580 | vfree(cpuid_entries); |
@@ -1596,6 +1597,7 @@ static int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu, | |||
1596 | goto out; | 1597 | goto out; |
1597 | vcpu->arch.cpuid_nent = cpuid->nent; | 1598 | vcpu->arch.cpuid_nent = cpuid->nent; |
1598 | kvm_apic_set_version(vcpu); | 1599 | kvm_apic_set_version(vcpu); |
1600 | kvm_x86_ops->cpuid_update(vcpu); | ||
1599 | return 0; | 1601 | return 0; |
1600 | 1602 | ||
1601 | out: | 1603 | out: |
@@ -3733,6 +3735,7 @@ struct kvm_cpuid_entry2 *kvm_find_cpuid_entry(struct kvm_vcpu *vcpu, | |||
3733 | } | 3735 | } |
3734 | return best; | 3736 | return best; |
3735 | } | 3737 | } |
3738 | EXPORT_SYMBOL_GPL(kvm_find_cpuid_entry); | ||
3736 | 3739 | ||
3737 | int cpuid_maxphyaddr(struct kvm_vcpu *vcpu) | 3740 | int cpuid_maxphyaddr(struct kvm_vcpu *vcpu) |
3738 | { | 3741 | { |