From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linutronix.de (193.142.43.55:993) by crypto-ml.lab.linutronix.de with IMAP4-SSL for ; 25 Oct 2019 09:03:41 -0000 Received: from mx2.suse.de ([195.135.220.15] helo=mx1.suse.de) by Galois.linutronix.de with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1iNvVT-0003L8-5x for speck@linutronix.de; Fri, 25 Oct 2019 11:03:40 +0200 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 4A7C7B5BE for ; Fri, 25 Oct 2019 09:03:33 +0000 (UTC) Date: Fri, 25 Oct 2019 11:03:31 +0200 From: Joerg Roedel Subject: [MODERATED] Re: ***UNCHECKED*** Re: [PATCH v7 3/5] NX 3 Message-ID: <20191025090331.GD7069@suse.de> References: <1571934870-34323-1-git-send-email-pbonzini@redhat.com> <1571934870-34323-4-git-send-email-pbonzini@redhat.com> <20191025083739.GC7069@suse.de> MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit To: speck@linutronix.de List-ID: On Fri, Oct 25, 2019 at 10:48:04AM +0200, speck for Paolo Bonzini wrote: > diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c > index e7970a2e8eae..1f923dee99e5 100644 > --- a/arch/x86/kvm/vmx/vmx.c > +++ b/arch/x86/kvm/vmx/vmx.c > @@ -992,6 +992,9 @@ static bool update_transition_efer(struct vcpu_vmx *vmx, int efer_offset) > ignore_bits &= ~(u64)EFER_SCE; > #endif > > + guest_efer &= ~ignore_bits; > + guest_efer |= host_efer & ignore_bits; > + > /* > * On EPT, we can't emulate NX, so we must switch EFER atomically. > * On CPUs that support "load IA32_EFER", always switch EFER > @@ -1010,9 +1013,6 @@ static bool update_transition_efer(struct vcpu_vmx *vmx, int efer_offset) > } else { > clear_atomic_switch_msr(vmx, MSR_EFER); > > - guest_efer &= ~ignore_bits; > - guest_efer |= host_efer & ignore_bits; > - > vmx->guest_msrs[efer_offset].data = guest_efer; > vmx->guest_msrs[efer_offset].mask = ~ignore_bits; > > > This works on my machine with ept=0 but breaks with ept=1: KVM: entry failed, hardware error 0x80000021 Regards, Joerg