kvm, x86: ignore SRAO only when MCG_SER_P is available
PATCH 1/11 kvm, x86: ignore SRAO only when MCG_SER_P is available
And restruct this block to call kvm_mce_in_exception() only when it is required.
Signed-off-by Hidetoshi Seto <[email protected]>
Tested-by Jin Dongming <[email protected]>
--- qemu-kvm.c | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-)
qemu-kvm.c +9 -6
@@ -1903,12 +1903,15 @@ static void kvm_do_inject_x86_mce(void *_data)struct kvm_x86_mce_data *data = _data;int r; -/* If there is an MCE excpetion being processed, ignore this SRAO MCE */ - r =kvm_mce_in_exception (data->env); -if (r ==-1 ) { -fprintf (stderr,"Failed to get MCE status\n" ); - }else if (r && !(data->mce->status &MCI_STATUS_AR )) { -return ; +/* If there is an MCE exception being processed, ignore this SRAO MCE */ +if ((data->env->mcg_cap &MCG_SER_P ) && + !(data->mce->status &MCI_STATUS_AR )) { + r =kvm_mce_in_exception (data->env); +if (r ==-1 ) { +fprintf (stderr,"Failed to get MCE status\n" ); + }else if (r) { +return ; + } } r =kvm_set_mce (data->env, data->mce);if (r <0 ) {
Signature · 1 line
1.7.1.1