Messages in this thread |  | | Subject | Re: [PATCH v15 04/14] KVM: x86: Add #CP support in guest exception dispatch | From | Paolo Bonzini <> | Date | Thu, 4 Feb 2021 18:29:18 +0100 |
| |
On 04/02/21 17:42, Sean Christopherson wrote: > On Thu, Feb 04, 2021, Paolo Bonzini wrote: >> On 03/02/21 22:46, Sean Christopherson wrote: >>> >>> diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c >>> index dbca1687ae8e..0b6dab6915a3 100644 >>> --- a/arch/x86/kvm/vmx/nested.c >>> +++ b/arch/x86/kvm/vmx/nested.c >>> @@ -2811,7 +2811,7 @@ static int nested_check_vm_entry_controls(struct kvm_vcpu *vcpu, >>> /* VM-entry interruption-info field: deliver error code */ >>> should_have_error_code = >>> intr_type == INTR_TYPE_HARD_EXCEPTION && prot_mode && >>> - x86_exception_has_error_code(vector); >>> + x86_exception_has_error_code(vcpu, vector); >>> if (CC(has_error_code != should_have_error_code)) >>> return -EINVAL; >>> >>> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c >>> index 28fea7ff7a86..0288d6a364bd 100644 >>> --- a/arch/x86/kvm/x86.c >>> +++ b/arch/x86/kvm/x86.c >>> @@ -437,17 +437,20 @@ EXPORT_SYMBOL_GPL(kvm_spurious_fault); >>> #define EXCPT_CONTRIBUTORY 1 >>> #define EXCPT_PF 2 >>> >>> -static int exception_class(int vector) >>> +static int exception_class(struct kvm_vcpu *vcpu, int vector) >>> { >>> switch (vector) { >>> case PF_VECTOR: >>> return EXCPT_PF; >>> + case CP_VECTOR: >>> + if (vcpu->arch.cr4_guest_rsvd_bits & X86_CR4_CET) >>> + return EXCPT_BENIGN; >>> + return EXCPT_CONTRIBUTORY; >>> case DE_VECTOR: >>> case TS_VECTOR: >>> case NP_VECTOR: >>> case SS_VECTOR: >>> case GP_VECTOR: >>> - case CP_VECTOR: > > This removal got lost when squasing. > > arch/x86/kvm/x86.c: In function ‘exception_class’: > arch/x86/kvm/x86.c:455:2: error: duplicate case value > 455 | case CP_VECTOR: > | ^~~~ > arch/x86/kvm/x86.c:446:2: note: previously used here > 446 | case CP_VECTOR: > | ^~~~
Well, it shows that I haven't even started including those unlikely-for-5.12 patches (CET and #DB bus lock) in my builds, since today I was focusing on getting a kvm/next push done.
I'll probably push all those to kvm/intel-queue and remove them from everyone's view, for now.
Paolo
|  |