|
@@ -155,11 +155,6 @@ struct kvm_stats_debugfs_item debugfs_entries[] = {
|
|
|
|
|
|
u64 __read_mostly host_xcr0;
|
|
|
|
|
|
-static inline u32 bit(int bitno)
|
|
|
-{
|
|
|
- return 1 << (bitno & 31);
|
|
|
-}
|
|
|
-
|
|
|
static void kvm_on_user_return(struct user_return_notifier *urn)
|
|
|
{
|
|
|
unsigned slot;
|
|
@@ -4569,9 +4564,11 @@ static void kvm_timer_init(void)
|
|
|
#ifdef CONFIG_CPU_FREQ
|
|
|
struct cpufreq_policy policy;
|
|
|
memset(&policy, 0, sizeof(policy));
|
|
|
- cpufreq_get_policy(&policy, get_cpu());
|
|
|
+ cpu = get_cpu();
|
|
|
+ cpufreq_get_policy(&policy, cpu);
|
|
|
if (policy.cpuinfo.max_freq)
|
|
|
max_tsc_khz = policy.cpuinfo.max_freq;
|
|
|
+ put_cpu();
|
|
|
#endif
|
|
|
cpufreq_register_notifier(&kvmclock_cpufreq_notifier_block,
|
|
|
CPUFREQ_TRANSITION_NOTIFIER);
|
|
@@ -5522,6 +5519,8 @@ int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu,
|
|
|
|
|
|
mmu_reset_needed |= kvm_read_cr4(vcpu) != sregs->cr4;
|
|
|
kvm_x86_ops->set_cr4(vcpu, sregs->cr4);
|
|
|
+ if (sregs->cr4 & X86_CR4_OSXSAVE)
|
|
|
+ update_cpuid(vcpu);
|
|
|
if (!is_long_mode(vcpu) && is_pae(vcpu)) {
|
|
|
load_pdptrs(vcpu, vcpu->arch.walk_mmu, vcpu->arch.cr3);
|
|
|
mmu_reset_needed = 1;
|