Revision c5999bfc

b/target-i386/kvm.c
63 63

  
64 64
static bool has_msr_star;
65 65
static bool has_msr_hsave_pa;
66
#if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ASYNC_PF)
67
static bool has_msr_async_pf_en;
68
#endif
66 69
static int lm_capable_kernel;
67 70

  
68 71
static struct kvm_cpuid2 *try_get_cpuid(KVMState *s, int max)
......
164 167
            features |= (1 << para_features[i].feature);
165 168
        }
166 169
    }
170
    has_msr_async_pf_en = features & (1 << KVM_FEATURE_ASYNC_PF);
167 171
    return features;
168 172
}
169 173
#endif
......
828 832
                          env->system_time_msr);
829 833
        kvm_msr_entry_set(&msrs[n++], MSR_KVM_WALL_CLOCK, env->wall_clock_msr);
830 834
#if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ASYNC_PF)
831
        kvm_msr_entry_set(&msrs[n++], MSR_KVM_ASYNC_PF_EN, env->async_pf_en_msr);
835
        if (has_msr_async_pf_en) {
836
            kvm_msr_entry_set(&msrs[n++], MSR_KVM_ASYNC_PF_EN,
837
                              env->async_pf_en_msr);
838
        }
832 839
#endif
833 840
    }
834 841
#ifdef KVM_CAP_MCE
......
1064 1071
    msrs[n++].index = MSR_KVM_SYSTEM_TIME;
1065 1072
    msrs[n++].index = MSR_KVM_WALL_CLOCK;
1066 1073
#if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ASYNC_PF)
1067
    msrs[n++].index = MSR_KVM_ASYNC_PF_EN;
1074
    if (has_msr_async_pf_en) {
1075
        msrs[n++].index = MSR_KVM_ASYNC_PF_EN;
1076
    }
1068 1077
#endif
1069 1078

  
1070 1079
#ifdef KVM_CAP_MCE

Also available in: Unified diff