On Thu, Apr 18, 2019 at 06:56:06AM -0700, Sean Christopherson wrote: > This doesn't allow writing '0' regardless of msr_hwcr.BIT(18), which was > previously supported. Restored the old conditional: diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 10f6acc6494c..f74f1280745b 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -2318,7 +2318,8 @@ static int set_msr_mce(struct kvm_vcpu *vcpu, struct msr_data *msr_info) return -1; /* MCi_STATUS */ - if ((offset & 0x3) == 1 && !msr_info->host_initiated) { + if (!msr_info->host_initiated && + (offset & 0x3) == 1 && data != 0) { if (!can_set_mci_status(vcpu)) return -1; } > And there's no need for multiple if statements. It is a bit more readable this way. Actually, I'd break that if above into smaller if-statements with flipped logic to make it even more readable: if (msr_info->host_initiated) goto set_msr; if (!(offset & 0x3)) goto set_msr; if (!data) goto set_msr; if (!can_set_mci_status(vcpu)) return -1; set_msr: ... Anything else? Can I send v5.2 now? -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim the reply.