From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45226) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1cKj-00071N-Lv for qemu-devel@nongnu.org; Wed, 25 Nov 2015 10:50:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a1cKf-0006w1-MP for qemu-devel@nongnu.org; Wed, 25 Nov 2015 10:50:13 -0500 Received: from mx1.redhat.com ([209.132.183.28]:46393) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1cKf-0006vx-IE for qemu-devel@nongnu.org; Wed, 25 Nov 2015 10:50:09 -0500 From: Eduardo Habkost Date: Wed, 25 Nov 2015 13:49:49 -0200 Message-Id: <1448466589-9407-4-git-send-email-ehabkost@redhat.com> In-Reply-To: <1448466589-9407-1-git-send-email-ehabkost@redhat.com> References: <1448466589-9407-1-git-send-email-ehabkost@redhat.com> Subject: [Qemu-devel] [PATCH 3/3] target-i386: kvm: Print warning when clearing mcg_cap bits List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kvm@vger.kernel.org, Marcelo Tosatti , Borislav Petkov , ying.huang@intel.com, Paolo Bonzini , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Richard Henderson Instead of silently clearing mcg_cap bits when the host doesn't support them, print a warning when doing that. Signed-off-by: Eduardo Habkost --- target-i386/kvm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/target-i386/kvm.c b/target-i386/kvm.c index d63a85b..446bdfc 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -774,7 +774,7 @@ int kvm_arch_init_vcpu(CPUState *cs) && (env->features[FEAT_1_EDX] & (CPUID_MCE | CPUID_MCA)) == (CPUID_MCE | CPUID_MCA) && kvm_check_extension(cs->kvm_state, KVM_CAP_MCE) > 0) { - uint64_t mcg_cap; + uint64_t mcg_cap, unsupported_caps; int banks; int ret; @@ -790,6 +790,12 @@ int kvm_arch_init_vcpu(CPUState *cs) return -ENOTSUP; } + unsupported_caps = env->mcg_cap & ~(mcg_cap | MCG_CAP_BANKS_MASK); + if (unsupported_caps) { + error_report("warning: Unsupported MCG_CAP bits: 0x%" PRIx64 "\n", + unsupported_caps); + } + env->mcg_cap &= mcg_cap | MCG_CAP_BANKS_MASK; ret = kvm_vcpu_ioctl(cs, KVM_X86_SETUP_MCE, &env->mcg_cap); if (ret < 0) { -- 2.1.0