mirror of https://gitee.com/openkylin/qemu.git
x86 fixes for -rc3
* Fix SynIC crash * Fix x86 crash on MSR code on AMD hosts -----BEGIN PGP SIGNATURE----- iQIcBAABCAAGBQJb/F56AAoJECgHk2+YTcWmhTAP/1R0EPlFqfS4U3VIb43ac+dQ Q3lJg3ye23Jp9Cws32pZXTFZyCa76H8rSY0ky+2g4GL5JvAg/LRM3dGF8VceJY4O NgMps1hozxuqRfSqjn56uzqok/ewSql/WHQedUKAk34wImZkv0m/6rAgTK86xuW3 hEnrfOFqowMIrbVw5D0E6b0dT7FshCsvP9cxWxczOdONcV3TZHut7vyTWmlwidlB OpfR4aURoNuOc8gOOeOwh763rqS4wVNLI80kbkrti4C9crrNmsRxq839M7G6l993 7yFGYooVQvAGd1FDfTfAyqloDGpBjuGh+2apOjByFjaY3+CRMAk2pAgriTTiuPbU 0yy8eyRue0CtIikS9S3/rkbwG2H82kFditx0WVVOceut3/NLljmRTS/YmL5bq4GK c2KLDbukflghTIsdpWeLVn9AbKPw80MOia/aTG93e3E/Q7AqKnXbq8nRY6lhayXq 1sSrneEqiA1UNjR/shbCV/pHSZCoWWCfYO56jsrlkVsL19GlPljolj0Nct29FTAW J4So91K21Xcablzchn8rg9Q2aq9px9RRBVmdK/SJFZuLVAOxjSXKbGDNM+/YZ0Wa /vvXBrM1Xgf/8reWnFPEfRP6rHFlVVhA40Ho5oqNpI8+mrvqYnASTWcnVZ+V+gnW 2prdaJ8h3bKseouxly85 =ZzdR -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/ehabkost/tags/x86-for-3.1-pull-request' into staging x86 fixes for -rc3 * Fix SynIC crash * Fix x86 crash on MSR code on AMD hosts # gpg: Signature made Mon 26 Nov 2018 20:58:34 GMT # gpg: using RSA key 2807936F984DC5A6 # gpg: Good signature from "Eduardo Habkost <ehabkost@redhat.com>" # Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF D1AA 2807 936F 984D C5A6 * remotes/ehabkost/tags/x86-for-3.1-pull-request: hw/hyperv: fix NULL dereference with pure-kvm SynIC kvm: Use KVM_GET_MSR_INDEX_LIST for MSR_IA32_ARCH_CAPABILITIES support Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
d5d31c9a8a
|
@ -136,7 +136,11 @@ void hyperv_synic_add(CPUState *cs)
|
|||
|
||||
void hyperv_synic_reset(CPUState *cs)
|
||||
{
|
||||
device_reset(DEVICE(get_synic(cs)));
|
||||
SynICState *synic = get_synic(cs);
|
||||
|
||||
if (synic) {
|
||||
device_reset(DEVICE(synic));
|
||||
}
|
||||
}
|
||||
|
||||
static const TypeInfo synic_type_info = {
|
||||
|
|
|
@ -95,6 +95,7 @@ static bool has_msr_xss;
|
|||
static bool has_msr_spec_ctrl;
|
||||
static bool has_msr_virt_ssbd;
|
||||
static bool has_msr_smi_count;
|
||||
static bool has_msr_arch_capabs;
|
||||
|
||||
static uint32_t has_architectural_pmu_version;
|
||||
static uint32_t num_architectural_pmu_gp_counters;
|
||||
|
@ -1481,6 +1482,9 @@ static int kvm_get_supported_msrs(KVMState *s)
|
|||
case MSR_VIRT_SSBD:
|
||||
has_msr_virt_ssbd = true;
|
||||
break;
|
||||
case MSR_IA32_ARCH_CAPABILITIES:
|
||||
has_msr_arch_capabs = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2002,14 +2006,9 @@ static int kvm_put_msrs(X86CPU *cpu, int level)
|
|||
#endif
|
||||
|
||||
/* If host supports feature MSR, write down. */
|
||||
if (kvm_feature_msrs) {
|
||||
int i;
|
||||
for (i = 0; i < kvm_feature_msrs->nmsrs; i++)
|
||||
if (kvm_feature_msrs->indices[i] == MSR_IA32_ARCH_CAPABILITIES) {
|
||||
kvm_msr_entry_add(cpu, MSR_IA32_ARCH_CAPABILITIES,
|
||||
env->features[FEAT_ARCH_CAPABILITIES]);
|
||||
break;
|
||||
}
|
||||
if (has_msr_arch_capabs) {
|
||||
kvm_msr_entry_add(cpu, MSR_IA32_ARCH_CAPABILITIES,
|
||||
env->features[FEAT_ARCH_CAPABILITIES]);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue