Revision 75d49497
b/target-i386/kvm.c | ||
---|---|---|
437 | 437 |
int banks; |
438 | 438 |
int ret; |
439 | 439 |
|
440 |
if (kvm_get_mce_cap_supported(env->kvm_state, &mcg_cap, &banks)) { |
|
441 |
perror("kvm_get_mce_cap_supported FAILED"); |
|
442 |
} else { |
|
443 |
if (banks > MCE_BANKS_DEF) |
|
444 |
banks = MCE_BANKS_DEF; |
|
445 |
mcg_cap &= MCE_CAP_DEF; |
|
446 |
mcg_cap |= banks; |
|
447 |
ret = kvm_vcpu_ioctl(env, KVM_X86_SETUP_MCE, &mcg_cap); |
|
448 |
if (ret < 0) { |
|
449 |
fprintf(stderr, "KVM_X86_SETUP_MCE: %s", strerror(-ret)); |
|
450 |
} else { |
|
451 |
env->mcg_cap = mcg_cap; |
|
452 |
} |
|
440 |
ret = kvm_get_mce_cap_supported(env->kvm_state, &mcg_cap, &banks); |
|
441 |
if (ret < 0) { |
|
442 |
fprintf(stderr, "kvm_get_mce_cap_supported: %s", strerror(-ret)); |
|
443 |
return ret; |
|
453 | 444 |
} |
445 |
|
|
446 |
if (banks > MCE_BANKS_DEF) { |
|
447 |
banks = MCE_BANKS_DEF; |
|
448 |
} |
|
449 |
mcg_cap &= MCE_CAP_DEF; |
|
450 |
mcg_cap |= banks; |
|
451 |
ret = kvm_vcpu_ioctl(env, KVM_X86_SETUP_MCE, &mcg_cap); |
|
452 |
if (ret < 0) { |
|
453 |
fprintf(stderr, "KVM_X86_SETUP_MCE: %s", strerror(-ret)); |
|
454 |
return ret; |
|
455 |
} |
|
456 |
|
|
457 |
env->mcg_cap = mcg_cap; |
|
454 | 458 |
} |
455 | 459 |
#endif |
456 | 460 |
|
Also available in: Unified diff