Re: [PATCH v6 8/8] kvm: vmx: virtualize split lock detection

From: Thomas Gleixner
Date: Thu Mar 26 2020 - 14:51:37 EST


Xiaoyao Li <xiaoyao.li@xxxxxxxxx> writes:
> On 3/26/2020 10:55 PM, Thomas Gleixner wrote:
>> Xiaoyao Li <xiaoyao.li@xxxxxxxxx> writes:
>>> On 3/26/2020 7:10 PM, Thomas Gleixner wrote:
>>> If the host has it disabled, !split_lock_detect_on() is true, it skips
>>> following check due to ||
>>>
>>> if (!boot_cpu_has(X86_FEATURE_SPLIT_LOCK)) {
>>> inject #AC back to guest
> and return 1;
>
>>
>> That'd be a regular #AC, right?
>
> Yes.
>
>>> } else {
>>> if (guest_alignment_check_enabled() || guest_sld_on())
>>> inject #AC back to guest
> and return 1;
>
>> Here is clearly an else path missing.
>
> the else path is fall through.
>
> i.e. calling handle_user_split_lock().
>
> If cannot handle, it falls through to report #AC to user space (QEMU)
>
>>> }
>>
>
> If there is no problem with the above. So what's the problem of the
> original?

Probably my inability to decipher the convoluted condition.

Thanks,

tglx